如何给有效的默认值给MySQL中的主自动增量整数?

时间:2018-11-15 21:12:56

标签: mysql increment auto

我正在使用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对我来说很好,但我在问是否有一种解决方案可以将主键,自动增量和默认值保持在一起。

1 个答案:

答案 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));