2011-07-30 122 views
0

当我插入新行时,treeId列始终为1.
treeId列未包括在insert语句中。列不在mysql中自动增加

什么可能导致它不增加?

我的表的代码是

CREATE TABLE `users` (
    `uuid` varchar(36) NOT NULL, 
    `parentUuid` varchar(36) DEFAULT NULL, 
    `treePath` text, 
    `treeId` int(11) NOT NULL AUTO_INCREMENT, 
    `firstName` varchar(50) NOT NULL, 
    `lastName` varchar(50) NOT NULL, 
    `email` varchar(255) NOT NULL, 
    `salt` varchar(40) NOT NULL, 
    `password` varchar(40) NOT NULL, 
    `state` enum('subscribed','registered','banned') NOT NULL, 
    `dobMonth` int(11) DEFAULT NULL, 
    `dobYear` int(11) DEFAULT NULL, 
    `dateSubscribed` datetime DEFAULT NULL, 
    `dateRegistered` datetime DEFAULT NULL, 
    `gender` enum('unspecified','male','female') NOT NULL DEFAULT 'unspecified', 
    `dd` float DEFAULT '0', 
    `mainRegion` int(11) DEFAULT NULL, 
    PRIMARY KEY (`uuid`,`treeId`), 
    KEY `parentid` (`parentUuid`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 
+0

适合我使用你的表格,张贴你的插入语句 – Calum

+0

适用于我:'INSERT INTO users(uuid,parentUuid,treePath,firstName,lastName,email,salt,password,state,dobMonth,dobYear,dateSubscribed,dateRegistered ,性别,dd,mainRegion)VALUES('a','b','c','d','e','f','g','h','订阅',1973年5月2011-05-01','2011-05-02','男',1,2);' – Mike

回答

0

找到答案(Documentation

对于MyISAM和BDB表就可以在多列索引上的 次级柱指定AUTO_INCREMENT。在这种情况下,AUTO_INCREMENT列的 生成值计算为 MAX(auto_increment_column) + 1 WHERE prefix=given-prefix。当您想要将数据放入有序组时,这是 有用。

CREATE TABLE animals (
    grp ENUM('fish','mammal','bird') NOT NULL, 
    id MEDIUMINT NOT NULL AUTO_INCREMENT, 
    name CHAR(30) NOT NULL, 
    PRIMARY KEY (grp,id) 
) ENGINE=MyISAM; 

INSERT INTO animals (grp,name) VALUES 
    ('mammal','dog'),('mammal','cat'), 
    ('bird','penguin'),('fish','lax'),('mammal','whale'), 
    ('bird','ostrich'); 

SELECT * FROM animals ORDER BY grp,id; 
Which returns: 

+--------+----+---------+ 
| grp | id | name | 
+--------+----+---------+ 
| fish | 1 | lax  | 
| mammal | 1 | dog  | 
| mammal | 2 | cat  | 
| mammal | 3 | whale | 
| bird | 1 | penguin | 
| bird | 2 | ostrich | 

,因为我对uuid联合密钥(这始终是唯一的)和treeId(这是自动递增),然后将其每次创建一个新的增量组。

1

,如果你想让它自动递增不要在你插入指定treeId领域。