首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于自动增量复制,无法创建MYSQL表

由于自动增量复制,无法创建MYSQL表
EN

Stack Overflow用户
提问于 2016-08-23 23:52:37
回答 2查看 44关注 0票数 2

下面是我的表模式。

代码语言:javascript
复制
CREATE TABLE `tbl_certificate`
(
`certificate_id` int(11) NOT NULL AUTO_INCREMENT,    
`certificate_number` varchar(150) NOT NULL,    
`vin_no_id` varchar(50) NOT NULL,    
`product_id` int(11) NOT NULL,    
`duration_id` int(11) NOT NULL,    
`clientId` varchar(30) NOT NULL,    
`first_name` varchar(50) NOT NULL,    
`last_name` varchar(50) NOT NULL,    
`state` varchar(256) NOT NULL,    
`city` varchar(256) NOT NULL,    
`mobile` varchar(30) NOT NULL,    
`alternate_contact_number` varchar(30) NOT NULL,    
`land_line` varchar(256) NOT NULL,    
`address` varchar(300) NOT NULL,    
`email_id` varchar(50) NOT NULL,    
`registration_no` varchar(20) NOT NULL,    
`make_id` varchar(255) NOT NULL,    
`model_id` varchar(100) NOT NULL,    
`vehical_sale_date` date NOT NULL,    
`vehical_delivery_date` date NOT NULL,    
`engine_number` varchar(30) NOT NULL,    
`fuel` varchar(20) NOT NULL,    
`odometer_reading` varchar(30) NOT NULL,    
`color` varchar(32) NOT NULL,    
`variant` varchar(16) NOT NULL,    
`refered_by` int(11) NOT NULL,    
`user_id` varchar(30) NOT NULL,    
`created_date` date NOT NULL,    
`complete_status` varchar(30) NOT NULL,    
`price_amt` varchar(20) NOT NULL,    
`servicetax_amt` varchar(20) NOT NULL,    
`total_amt` varchar(20) NOT NULL,    
`quotationNumber` bigint(20) NOT NULL,    
`programstart` date NOT NULL,    
`programend` date NOT NULL,    
`uploaded_certificate` int(11) NOT NULL COMMENT '0-No,1-Yes',    
`certificate_create_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,    
`savedCertificateDate` datetime NOT NULL,    
`purchaseCertificateDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',    
`transaction_no` varchar(256) NOT NULL,    
`expired` int(11) NOT NULL DEFAULT '0'  
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

它会抛出一个错误,比如

表定义不正确;只能有一个auto列,并且必须将其定义为键

我不知道有什么问题,只有一个自动增量字段名'certificate_id‘。

请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-23 23:56:44

您必须在AUTO_INCREMENT的DDL中包含PRIMARY KEY约束。

代码语言:javascript
复制
CREATE TABLE `tbl_certificate`
(
    `certificate_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ...
)

需要明确的是,AUTO_INCREMENT基本上只是索引键的一个属性。它没有将属性定义为架构中的索引。因此,一个列可以是一个没有AUTO_INCREMENT属性的索引键,但如果没有索引,它就不能有AUTO_INCREMENT属性。有关更多详细信息,请参阅MySQL documentation

票数 1
EN

Stack Overflow用户

发布于 2016-08-23 23:57:39

在这种情况下,错误消息非常清楚:必须对自动增量列进行索引。表定义中的certificate_id字段不是索引的一部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39105723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档