我想创建一个表名users,其中我应该有列 User
, cookieID
, sessionID
, Geo
然后我想让前三列自动分配一些随机的唯一值。我试着把三列都列出来 AUTO_INCREMENT
与 User
列 PRIMARY
还有cookieid and
会话ID column
唯一的'。sql代码是:
CREATE TABLE `users` ( `User` VARCHAR(20) NOT NULL AUTO_INCREMENT ,
`cookieID` INT(20) NULL DEFAULT NULL AUTO_INCREMENT ,
`sessionID` INT(20) NULL DEFAULT NULL AUTO_INCREMENT ,
`Geo` VARCHAR(30) NULL DEFAULT NULL ,
PRIMARY KEY (`User`), UNIQUE (`cookieID`), UNIQUE (`sessionID`), UNIQUE (`Geo`));
但是,由于只有一列可以声明为 AUTO_INCREMENT
那一定是 PRIMARY
. 另一种方法是什么?
2条答案
按热度按时间j13ufse21#
因为自动递增不能应用于多个to行,而且mysql中没有sequence选项。可以使用触发器对具有datetime的行进行唯一更新。
将表创建更改为单自动增量行。
在同一个表上创建触发器,如下所示。您可以根据需要为任意多个列设置集合下的唯一值。
现在当你插入下表时。
你的table看起来像这样。
9vw9lbht2#
如果值是自动递增的,则希望两个值保持相同。然后在插入新值时将一列的值复制到另一列。