在MySQL中如何设置属性的限制

时间:2011-12-04 01:07:10

标签: mysql database triggers

我在MySQL中创建了我的ER和所有表格,但我需要知道如何为我的一个属性设置允许的最大数量。

该属性是车辆,我希望我的数据库将限制设置为10,并且不允许用户添加第11辆车。

我对触发器不太熟悉。我怎么开始?

2 个答案:

答案 0 :(得分:1)

为什么不在插入之前计算表中的行数? 如果计数返回10,请不要插入。

答案 1 :(得分:1)

Mysql没有提供一种机制来阻止INSERT INTO带有触发器的表。 解决方案是使用非空列的触发器。

CREATE TRIGGER carsCheck BEFORE INSERT ON cars
for each row
begin
  DECLARE counter INT;
  SET counter = (select count(id) from cars);
  if counter > 10 then
    NEW.notNulCol = null;
  end if;
end;