我正在使用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缺省值
不为空
在查询中,但我的给出了例外。
使用UNIQUE代替PRIMARY KEY对我来说很好,但我在问是否有一种解决方案可以将主键,自动增量和默认值保持在一起。
答案 0 :(得分:0)
对于AUTO_INCREMENT,默认值实际上没有任何意义。 AUTO_INCREMENT基本上意味着默认值是最大值(可以在表上设置)的+1(或+ x)。
换句话说,永远不要同时使用AUTO_INCREMENT和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));