2013-05-17 59 views
2

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

+3

简单的答案:没有。不在MySQL级别。 –

+0

好的谢谢@StevenMoseley。不知道是否有这样的功能。 –

+1

你可以使用'INSERT ... SELECT语法'.. – Rahul

回答

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

+0

我会试试这个。 :) –

+0

这将限制单个插入语句,而不是最大行插入 –

+0

@StevenMoseley,它会插入多达30行。 – Sebas

0

如果您正在使用的数据库访问库,为解决这个复杂的方法是在SQL查询的开始打开一个交易,做一个提交给数据库只如果你没有通过限制,伪代码(使用社会):

transaction tr(*db); 
//your SQL query that ends in "RETURNING id" 
if (id < 30) tr.commit(); 
else throw;