2

我有一张表格,管理员可以在其中上传更多用户的详细信息。在上传之前,他必须选择一个限制;假设他选择了30 个用户。那么,我可以对那个 MySQL 表设置一个限制,只允许插入 30 行而不是更多吗?有没有办法做到这一点?

4

2 回答 2

3
INSERT INTO `user_details` (fields) 
SELECT d.detail
FROM 
    (SELECT 'asdasd' as `detail` FROM dual) d
    CROSS JOIN (
        SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
        LIMIT 30
    ) i
  • 对于更高的限值,我想这个技巧不起作用
  • 您需要访问INFORMATION_SCHEMA架构。

小提琴示例:http ://sqlfiddle.com/#!2/15ea4/5

于 2013-05-17T12:55:27.253 回答
0

如果您使用的是数据库访问库,解决此问题的一种复杂方法是​​在 SQL 查询开始时打开一个事务,并仅在您没有通过限制的情况下才提交到数据库,伪代码(使用 soci ):

transaction tr(*db);
//your SQL query that ends in "RETURNING id"
if (id < 30) tr.commit();
else throw;
于 2015-01-25T14:59:58.993 回答