Mysql 错误1075不正确的表定义;只能有一个自动列,必须将其定义为键
我正在创建表之间的关系,这是自动递增两列Mysql 错误1075不正确的表定义;只能有一个自动列,必须将其定义为键,mysql,sql,Mysql,Sql,我正在创建表之间的关系,这是自动递增两列id\u quote和seq\u quote所必需的。在id\u quote列中,我正在引用另一个表(tb\u core\u process\u id\u quote),我已经在该表中增加了它 下表(tb_核心_流程_客户_数据)将被其他表用于捕获公共数据和主要客户数据。要进行验证,必须使用此数据库中整个表共有的三个验证键:cpf\u cnpj、id\u quote和seq\u quote tb\核心\流程\客户\数据查询: CREATE TABLE tb
id\u quote
和seq\u quote
所必需的。在id\u quote
列中,我正在引用另一个表(tb\u core\u process\u id\u quote),我已经在该表中增加了它
下表(tb_核心_流程_客户_数据)将被其他表用于捕获公共数据和主要客户数据。要进行验证,必须使用此数据库中整个表共有的三个验证键:cpf\u cnpj
、id\u quote
和seq\u quote
tb\核心\流程\客户\数据查询:
CREATE TABLE tb_core_process_customer_data(
cpf_cnpj VARCHAR(255) NOT NULL,
id_quotation INT NOT NULL,
seq_quotation INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255),
dt_birth DATE,
cd_insurance_type INT,
PRIMARY KEY (cpf_cnpj, seq_quotation, id_quotation),
FOREIGN KEY (cd_insurance_type) REFERENCES tb_nm_insurance_type(cd_insurance_type),
FOREIGN KEY (id_quotation) REFERENCES tb_core_process_id_quotation(id_quotation)
);
tb\U核心\U流程\U id\U报价查询:
CREATE TABLE tb_core_process_id_quotation(
id_quotation INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id_quotation)
);
因此,我很难将这三个关键点联系起来并进行验证。当我尝试创建tb_核心_流程_客户_数据时,以下消息显示我:
错误1075(42000):表定义不正确;只能有一个自动列,必须将其定义为键
MySQL使用自动增量字段上的键以加快查找速度。您将auto_increment字段作为pk中的第二个字段,因此MySQL无法单独使用pk来检查auto_increment的值,因此会显示错误消息
有很多方法可以解决这个问题
seq_quote
字段中添加一个单独的键(不必是唯一的或主键)seq_quote
移动到当前PK中的第一个字段