我有一个用户表
CREATE TABLE IF NOT EXISTS `user` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
`clientid` ???
);
如果没有指定,我希望指定clientid
(许多家庭成员可以拥有相同的clientid
)或来自max clientid的auto_incremented
。
我尝试了不同的类型,但收到错误:表定义不正确;只能有一个自动列,必须将其定义为键。
我想让查询和数据库尽可能简单(如果可能的话,不使用触发器或复杂查询,因为我的ORM不支持它)
答案 0 :(得分:3)
评论太长了。
您的数据模型似乎已关闭。如果你有一个名为clientid
的列,那么我希望你的表有一个名为Clients
的表(我的表通常是复数名)。表Clients
将具有自动递增的ID。您的上表将使用外键关系引用它:
CREATE TABLE `clients` (
clientid int not null auto_increment primary key,
. . .
);
CREATE TABLE IF NOT EXISTS `user` (
userid bigint(20) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
clientid int,
constraint fk_user_client foreign key (clientid) references clients(clientid)
);