我有一张表格,管理员可以在其中上传更多用户的详细信息。在上传之前,他必须选择一个限制;假设他选择了30 个用户。那么,我可以对那个 MySQL 表设置一个限制,只允许插入 30 行而不是更多吗?有没有办法做到这一点?
问问题
4222 次
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
架构。
于 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 回答