1
MySQLの最大行数を同じ "user"値に制限する方法を教えてください。例えばMySQLは同じ "user"値の最大行数を制限します
、I列
id | user | data
持つテーブルを持っていると私は、最大の行は、各ユーザ(同じ「ユーザ」値)を5までカウント制限したいです。
start transaction
insert row with user = "XXX"
count rows, where user = "XXX"
if count < 5 commit else rollback
は私のアイデアが良いですか、別の(より良い)ソリューションも存在します。
私の考えは、トランザクション(InnoDBの)を使用することですか?私はそれは大丈夫だと思います
いいえ、**は挿入後に数を確認する必要があります**。別の挿入プロセスは私のカウントと挿入の間にある可能性があります。 – adminko
あなたはあなたが取引をしていると述べました。だから矛盾が起きれば、コミットすることはできません。 – Hooch
実際のカウント値(行数)はトランザクション中に増加することがありますので、カウント値は4ですが、実際のカウント数は5です...したがって、挿入後にカウントする必要があります。 – adminko