将值插入表后,我收到错误消息 1136,为啥? [复制]

Posted

技术标签:

【中文标题】将值插入表后,我收到错误消息 1136,为啥? [复制]【英文标题】:I get an error message 1136 after inserting values into table why? [duplicate]将值插入表后,我收到错误消息 1136,为什么? [复制] 【发布时间】:2021-04-14 23:31:15 【问题描述】:
INSERT INTO Restaurant (restaurantID, adres, postcode, telefoonnummer, email)
VALUES ('Johan Cruijff Boulevard 175', '1101 EJ', 020-6910231, 'info@ichi-e.nl');

错误代码:1136。列数与行中的值数不匹配 1 0,031 秒

【问题讨论】:

020-6910231 是算术运算 020minus6910231 你可能想引用这个(不是你的错误) 因为 4 5. 计数不同。 智能方式为那家餐厅做一些宣传。 【参考方案1】:

我的意思是你有自动递增的 restaurantID 列,所以你需要这样的插入器:

INSERT INTO Restaurant (
    adres, postcode, telefoonnummer, email
) VALUES (
    'Johan Cruijff Boulevard 175', '1101 EJ', '020-6910231', 'info@ichi-e.nl'
);

任何方式计数列是 SQL 查询必须等于值计数。

【讨论】:

【参考方案2】:

您似乎没有将RestaurantId 包含在VALUES 列表中。在许多情况下,无论如何它都是自动递增的,因此可以省略:

INSERT INTO Restaurant (adres, postcode, telefoonnummer, email)
    VALUES ('Johan Cruijff Boulevard 175', '1101 EJ', '020-6910231', 'info@ichi-e.nl');

想必电话号码也是一个字符串,应该用单引号括起来。

【讨论】:

【参考方案3】:

重新检查电话号码的数据类型和VARCHAR()或NVARCHAR()的长度

试试这个

INSERT INTO Restaurant (restaurantID, adres, postcode, telefoonnummer, email)
VALUES ('Johan Cruijff Boulevard 175', '1101 EJ', '020-6910231', 'info@ichi-e.nl');

【讨论】:

【参考方案4】:

错误消息会告诉您所需的一切。第一行中指定的列数与第二行中的值数不匹配。您的第一行指定了哪些列将在您的第二行中包含值以及顺序以及如果值的数量与预期值的数量不匹配,那么显然有问题。

您没有为restaurantID 指定值。如果它自动获得一些值,那么您可以从列列表中省略它:

INSERT INTO Restaurant (restaurantID, adres, postcode, telefoonnummer, email)
VALUES ('Johan Cruijff Boulevard 175', '1101 EJ', 020-6910231, 'info@ichi-e.nl');

否则,如果该字段没有这样的自动值,那么您需要将其值作为values 子句中的第一项提供。

【讨论】:

【参考方案5】:

您需要提供 restaurantID 的值或从括号的第一块中排除 restaurantID

【讨论】:

以上是关于将值插入表后,我收到错误消息 1136,为啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

我试图通过加入 3 个表将值插入表中,但是我收到“ORA-00933:SQL 命令未正确结束”错误''

为啥我的 ODBC 在添加新记录后立即失败?

我正在尝试将值添加到数据库中,但每次我尝试添加一些东西时,我都会收到错误消息“连接必须有效且打开。”

无法将值 NULL 插入列 - 如何强制标识增加? [关闭]

为啥我收到错误:插入表时列中有空值?

为啥我会收到错误消息?