【发布时间】:2022-12-30 02:13:23
【问题描述】:
【问题讨论】:
-
INSERT INTO users (wantedColumn, anotherColumn) VALUES (someValue, anotherValue)。您的id列也不需要指定,它是自动递增的。在编写此查询时,它基本上是插入一个“空白”行或默认行。
【问题讨论】:
INSERT INTO users (wantedColumn, anotherColumn) VALUES (someValue, anotherValue)。您的 id 列也不需要指定,它是自动递增的。在编写此查询时,它基本上是插入一个“空白”行或默认行。
您需要将列和 VALUES 拆分成单独的语句(也应该自动添加 id,因为您将它作为身份,所以您不需要显式使用它)。
试试这个:
INSERT INTO users (email, name, forename, pwhash)
VALUES ('mail', 'name', 'blaa', 'befbf');
如果需要,您可以使用它一次插入多个值
INSERT INTO users (email, name, forename, pwhash) VALUES
('mail', 'name', 'blaa', 'befbf'),
('mail2', 'another name', 'blaa2', 'befbf123'),
('mail3', '1 more name', 'blaa3', 'befbf456'),
('mail4', 'one final name', 'blaa4', 'befbf789');
(ETC。)
【讨论】:
正确的命令:
insert into users (email, name, forename, pwhash) values ('mail', name, 'blaa', 'befbf')
由于 sql 格式错误,您得到 null。 ID 为 1,因为它会根据您的定义自动递增。但其他列为空或 0。
【讨论】:
尝试
INSERT INTO users (email, name, forename, pwdssh)
VALUES ('email', 'name', 'blaa', 'befbf');
id 应该作为主键自动递增,因此无需指定它。如果你想像你尝试的那样内联,我不认为连字符是正确的语法,它将是一个等号,如email='email'
像这样明确列出列名意味着您可以按任何顺序指定列名后跟 VALUES。您也可以忽略列名而只说:
INSERT INTO users
VALUES ('email', 'name', 'blaa', 'befbf');
其中值按列定义的顺序列出。这样做,顺序变得很重要。
你可能会找到this quite useful
【讨论】:
您无需指定“field={value}”,只需按正确顺序输入值即可。 插入表(Field1,...,FieldN) 值('Value1',....,'ValueN');
【讨论】: