在mysql表中添加约束以拒绝相同类型的第三次插入,最有效的方法是什么?
CREATE TABLE `stack_over_t` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`data` varchar(45) NOT NULL,
`category` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
)
理想情况下,我希望阻止category=1的insert(插入前触发?),因为已经有两个category为1的条目。我该怎么做?我可以扩展到多个列吗?
3条答案
按热度按时间2ul0zpep1#
您可以阻止插入查询
up9lanfz2#
使用insert ignore命令而不是insert命令。例子:
mysql>insert ignore into person_tbl(姓,名)->值('jay','thomas');查询正常,1行受影响(0.00秒)
mysql>insert ignore into person_tbl(姓,名)->值('jay','thomas');查询正常,0行受影响(0.00秒)
bakd9h0s3#
如果您使用的是trigger,则可以设置客户端和服务器端验证。