MySQL 如果不对 id(主键)进行硬编码,插入语句将无法工作

MySQL insert statement won't work without hard coding the id (primary key)

MySqlCommand 导致错误“id 不能为空”

MySqlCommand cmd = new MySqlCommand($"insert into dataBase.testingTable (id, value1, value2, value3) values (null,'test','2021-1-1', 9)", connection);
connection.Open();
cmd.ExecuteReader();
connection.Close();

以下语句也产生了与 Id 相关的错误:

insert into dataBase.testingTable (value1, value2, value3) values ('test','2021-1-1', 9) //id column is missing

insert into dataBase.testingTable values ('test','2021-1-1', 9) //column number mismatch

如何解决这个错误。

我正在使用 MySQL 服务器、MySQL workbench 和 Visual Studio 的 WPF 框架。

Workbench中的table

您的第一个查询失败,因为 ID 列是无法分配 NULL 的 PRIMARY KEY 列。

第二个失败,因为 ID 列不是 NULL 并且您没有在 INSERT 语句中列出它。

第三个失败,因为您没有在插入语句中提及列名,因为系统需要所有 4 列的值,但您只提供了 3.

上述所有问题的解决方案是:使您的 ID 列自动递增或为插入的每一行提供一个非空唯一值。