2011-12-04 9 views
0

私は自分のERとすべてのテーブルをMySQLで作成しましたが、自分の属性の最大値を設定する方法を知る必要があります。MySQLではどのように属性に制限を設定できますか

属性は車両であり、データベースには制限を10に設定し、11台目の車を追加できないようにします。

私はトリガーにあまり慣れていません。どのようにすればいいですか?

+0

同じ「車」で10行について話していますか? – danihp

+0

テーブル構造を見せてもらえれば、それは解決策を提供するのに役立ちます。それがなければ、あまりにも多くの可能性があります。 – favoretti

答えて

1

挿入する前にテーブルの行数をカウントするだけでいいのですが? カウントが10を返した場合は、挿入しないでください。

+0

ありがとう、私は行を数えることができたことを知らなかったが、私はそれを見て....これは非常に新しいが、私のテーブルです: – Reighlo

1

Mysqlは、トリガーを持つテーブルをINSERT INTOにすることを防ぐメカニズムを提供していません。 解決策は、NULLでない列のトリガーを使用することです。

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; 
+0

ありがとう、これは多くを助けます – Reighlo

関連する問題