2013-05-17 84 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;