建立外键的时候,所有的参数都要匹配,比如unsigned not null 等等。
CREATE TABLE `user_access` (
`AccessId` bigint(20) unsigned NOT NULL auto_increment,
`ServerId` bigint(20) unsigned NOT NULL default '0',
`ChannelId` bigint(20) unsigned NOT NULL default '0',
`UserId` varchar(64) NOT NULL default '',
`AccessStartTime` datetime default NULL,
`AccessEndTime` datetime default NULL,
`AccessValid` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`AccessId`),
KEY `FK_SERV_ACC` (`ServerId`),
KEY `FK_CHAN_ACC` (`ChannelId`),
CONSTRAINT `FK_CHAN_ACC` FOREIGN KEY (`ChannelId`) REFERENCES `channel` (`ChannelId`) ON DELETE CASCADE,
CONSTRAINT `FK_SERV_ACC` FOREIGN KEY (`ServerId`) REFERENCES `server` (`ServerId`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `user_access` (
`AccessId` bigint(20) unsigned NOT NULL auto_increment,
`ServerId` bigint(20) unsigned NOT NULL default '0',
`ChannelId` bigint(20) unsigned NOT NULL default '0',
`UserId` varchar(64) NOT NULL default '',
`AccessStartTime` datetime default NULL,
`AccessEndTime` datetime default NULL,
`AccessValid` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`AccessId`),
KEY `FK_SERV_ACC` (`ServerId`),
KEY `FK_CHAN_ACC` (`ChannelId`),
CONSTRAINT `FK_CHAN_ACC` FOREIGN KEY (`ChannelId`) REFERENCES `channel` (`ChannelId`) ON DELETE CASCADE,
CONSTRAINT `FK_SERV_ACC` FOREIGN KEY (`ServerId`) REFERENCES `server` (`ServerId`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
本文介绍了一个具体的SQL语句实例,用于创建一个名为'user_access'的表,并定义了两个外键约束,分别指向'server'表和'channel'表。通过详细展示字段类型与约束条件,为读者提供了外键使用的实际案例。
608

被折叠的 条评论
为什么被折叠?



