我正在使用 MySQL 6.3 和 JDBC。 我不知道下面的查询中自动增量主键的有效值是什么
CREATE TABLE IF NOT EXISTS CUSTOMER (customerID INTEGER NOT NULL AUTO_INCREMENT DEFAULT '1', customerName VARCHAR(20), customerLastName VARCHAR(40)", customerPhoneNumber VARCHAR(11), customerCharge INTEGER, PRIMARY KEY (customerID));
我尝试了“0”、1、0 甚至 null,而不是“1”作为默认值。即使在我搜索的很多来源中,他们也使用了 null 默认值
NOT NULL
在查询中,但我的给出了异常(exception)。
使用 UNIQUE 而不是 PRIMARY KEY 对我来说效果很好,但我想问是否有一个解决方案可以将主键、自动增量和默认值保持在一起。
最佳答案
默认值对于 AUTO_INCRMENT 来说并没有真正的意义。 AUTO_INCRMENT 基本上意味着默认值是最高值的+1(或+x)(可以在表上设置)。
换句话说,永远不要同时使用 AUTO_INCRMENT 和 DEFAULT。
编辑 我不知道你真正使用的 mysql 版本是什么,但在 5.7 上这可以按预期工作:
CREATE TABLE IF NOT EXISTS CUSTOMER (customerID INTEGER NOT NULL AUTO_INCREMENT, customerName VARCHAR(20), customerLastName VARCHAR(40), customerPhoneNumber VARCHAR(11), customerCharge INTEGER, PRIMARY KEY (customerID));
关于mysql - 如何为mysql中的主自动增量整数赋予有效的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53327967/