[英]MySQL auto_increment
我有这张桌子
CREATE TABLE `zipcodes2` (
`ID` int(11) NOT NULL auto_increment,
`zipcode` int(6) NOT NULL default '0',
`State` char(3) NOT NULL default '',
`zip_name` varchar(255) NOT NULL default '',
`CityAliasName` varchar(255) NOT NULL default '',
`latitude` float(26,7) NOT NULL default '0.0000000',
`longitude` float(36,7) NOT NULL default '0.0000000',
`AreaCode` smallint(3) NOT NULL default '0',
`County` varchar(255) NOT NULL default '',
`TimeZone` smallint(3) NOT NULL default '0',
`DayLightSavings` char(2) NOT NULL default '',
PRIMARY KEY (`zipcode`,`CityAliasName`,`ID`),
KEY `CityAliasName` (`CityAliasName`),
KEY `State` (`State`),
KEY `index_by_zipcode` (`zipcode`),
KEY `index_by_state` (`State`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
我正在尝试从另一个表插入该表。 问题是auto_increment字段未递增。 我究竟做错了什么?
insert into zipcodes2 (ID,zipcode,state,zip_name,CityAliasName,latitude,longitude, AreaCode, County, TimeZone, DayLightSavings)
select distinct null,ZipCode as zipcode,State as state,City as zip_name, CityAliasName, Latitude as latitude, Longitude as longitude, AreaCode
, County, TimeZone, DayLightSavings
from zip_codes_all
where state NOT in ('PR', 'AE', 'PW', 'MP', 'GU', 'FM', 'AS','AP', 'AA','FM','GA','GU','FM')
limit 0,10;
您应该添加以下内容:
PRIMARY KEY ON ID COLUMN AND AUTOINCREMENT
尝试从查询中删除“ ID”:
insert into zipcodes2 (zipcode,state,zip_name,CityAliasName,latitude,longitude, AreaCode, County, TimeZone, DayLightSavings)
select distinct ZipCode as zipcode,State as state,City as zip_name, CityAliasName, Latitude as latitude, Longitude as longitude, AreaCode, County, TimeZone, DayLightSavings
from zip_codes_all
where state NOT in ('PR', 'AE', 'PW', 'MP', 'GU', 'FM', 'AS','AP', 'AA','FM','GA','GU','FM')
limit 0,10;
问题是
主键( zipcode
, CityAliasName
, ID
)
应该是
主键( ID
)
一旦更改了该内容,并从插入内容中删除了ID字段,我就得到了期望的结果。
是的,主键定义是一个键。 正如mysql文档所说:
对于MyISAM和BDB表,可以在多列索引的第二列上指定AUTO_INCREMENT。 在这种情况下,将为AUTO_INCREMENT列生成的值计算为MAX(auto_increment_column)+ 1 WHERE prefix = given-prefix。 当您要将数据放入有序组中时,这很有用。
修复主键之前,您的ID可能有非唯一值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.