gpt4 book ai didi

mysql - mysql中是否有机制来限制基于任意值的INSERT

转载 作者:行者123 更新时间:2023-11-29 00:24:25 26 4
gpt4 key购买 nike

如果我想限制每个用户在此表中的条目数:

CREATE TABLE `connections` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) unsigned NOT NULL,
`word_id` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `No duplicates` (`user_id`,`word_id`),
KEY `word_id` (`word_id`),
CONSTRAINT `connections_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `connections_ibfk_2` FOREIGN KEY (`word_id`) REFERENCES `words_en` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

这个限制可以改变,我将它存储在另一个名为设置的表中。

我应该先做 SELECT 而不是 php 比较然后再做 INSERT。或者是否有一种机制可以直接在 INSERT 查询中执行此类操作?

最佳答案

DELIMITER $$
create
trigger `some trigger` AFTER INSERT
on table
for each row begin
if (select count(id) from someothertable)>=100 then
delete from table WHERE id = NEW.id -99;
end$$
DELIMITER ;

恐怕我力不从心,如果有足够的时间进行研究,我想我可以做到,但你最好问问更有见识的人。这是我半途而废的触发器,未经测试。

您还可以使用 mysql 中的 Create Event。 http://www.sitepoint.com/how-to-create-mysql-events/

关于mysql - mysql中是否有机制来限制基于任意值的INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19622161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com