首页 > 解决方案 > HQL 自动增量 INSERT - SELECT:“操作数应包含 1 列”

问题描述

我想问一下。我正在使用休眠

how-to-write-hql-insert-query 因为休眠不能使用插入-值,我应该使用插入-选择。但我不知道如何设置自动增量值。

我尝试从 SQL AUTO INCREMENT 字段创建新数据库

CREATE TABLE Persons (
Personid AUTOINCREMENT PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int

);

我尝试输入这样的代码,但它显示错误

mysql> insert into Persons (Personid,LastName,FirstName,Age)select ('2','Morgen','Lars','12');

或者

mysql> insert into Persons (LastName,FirstName,Age)select ('Morgen','Lars','12');

错误 1241 (21000):操作数应包含 1 列

标签: mysqlhibernateselecthqlsql-insert

解决方案


an 的 select 子句INSERT INTO ... SELECT不应放在括号中:

INSERT INTO Persons (Personid, LastName, FirstName, Age)
SELECT '2', 'Morgen', 'Lars', '12';

虽然您的问题与拼写错误有关,但这是可以理解的,因为INSERTwith values 子句确实使用了元组:

INSERT INTO Persons (Personid, LastName, FirstName, Age)
VALUES
    ('2', 'Morgen', 'Lars', '12');

推荐阅读