到目前为止,我遇到过这么多次,但仍然不理解它(我的MySQL内部技能等于没有)。
我知道它可能是PEBKAC但是尝试手动复制行为会导致错误(自动增量)。
CREATE TABLE `foo_bar` (
`id` int(12) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(12) unsigned DEFAULT NULL,
`order_id` int(12) unsigned DEFAULT NULL,
`email_address` varchar(50) DEFAULT NULL,
`mobile_number` varchar(20) DEFAULT NULL,
`message` longtext NOT NULL,
`message_received` int(12) unsigned DEFAULT NULL,
`failed_to_send` tinyint(1) unsigned DEFAULT NULL,
`fraudulent_activity` tinyint(1) unsigned DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=ARCHIVE DEFAULT CHARSET=utf8;
答案 0 :(得分:0)
当您的程序在数据库中插入一行时,它应该提供NULL作为自动递增字段的值:
CREATE TABLE `customers` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 128 ) NOT NULL
) ENGINE = MYISAM ;
INSERT INTO `customers` ( `id` , `name` )
VALUES ( NULL , 'Customer 1' ), ( NULL , 'Customer 2' );
如果您尝试在id
字段中插入特定值,MySQL将给出错误:
SQL query:
INSERT INTO `customers` ( `id` , `name` )
VALUES ( '1', 'Customer 3' );
MySQL said:
#1062 - Duplicate entry '1' for key 'PRIMARY'
答案 1 :(得分:0)
虽然没有出现“造成这种情况的原因”的答案,REPAIR TABLE
解决了这个问题。
回答这个问题,我可以解决这个问题。