How to limit number of rows can be store in mysql table?

后端 未结 3 1758
一个人的身影
一个人的身影 2020-12-06 08:52

I need to limit the number of rows can be insert in a MySQL Table to 10 only. I need to implement this from MySQL only i.e without using any programming lan

3条回答
  •  北荒
    北荒 (楼主)
    2020-12-06 09:42

    Here's one idea...:

    CREATE TABLE my_table
    (id int auto_increment PRIMARY KEY  
    ,val char(1) NOT NULL
    );
    
    INSERT INTO my_table (val) SELECT 'b' FROM (SELECT 1) x WHERE (SELECT COUNT(*) FROM my_table) < 5;
    Query OK, 1 row affected (0.02 sec)
    
    INSERT INTO my_table (val) SELECT 'b' FROM (SELECT 1) x WHERE (SELECT COUNT(*) FROM my_table) < 5;
    Query OK, 1 row affected (0.02 sec)
    
    INSERT INTO my_table (val) SELECT 'b' FROM (SELECT 1) x WHERE (SELECT COUNT(*) FROM my_table) < 5;
    Query OK, 1 row affected (0.02 sec)
    
    INSERT INTO my_table (val) SELECT 'b' FROM (SELECT 1) x WHERE (SELECT COUNT(*) FROM my_table) < 5;
    Query OK, 1 row affected (0.02 sec)
    
    INSERT INTO my_table (val) SELECT 'b' FROM (SELECT 1) x WHERE (SELECT COUNT(*) FROM my_table) < 5;
    Query OK, 1 row affected (0.02 sec)
    
    INSERT INTO my_table (val) SELECT 'b' FROM (SELECT 1) x WHERE (SELECT COUNT(*) FROM my_table) < 5;
    Query OK, 0 rows affected (0.00 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    INSERT INTO my_table (val) SELECT 'b' FROM (SELECT 1) x WHERE (SELECT COUNT(*) FROM my_table) < 5;
    Query OK, 0 rows affected (0.00 sec)
    
    SELECT * FROM my_table;
    +----+-----+
    | id | val |
    +----+-----+
    |  1 | b   |
    |  2 | b   |
    |  3 | b   |
    |  4 | b   |
    |  5 | b   |
    +----+-----+
    

提交回复
热议问题