我想在一個插入添加100行,填充每個字段與下一個在一系列的數字(和他們的字符串等值)。這是可能的在mySQL
換句話說,沿着這些東西線(mynumber的將是一個varchar,myOrder將是一個int):
INSERT INTO myTable的(mynumber的,myOrder)選擇 「0」 - 「99」,選擇1- 100
我有一種感覺,這是無法完成的,但我想我會問。
我想在一個插入添加100行,填充每個字段與下一個在一系列的數字(和他們的字符串等值)。這是可能的在mySQL
換句話說,沿着這些東西線(mynumber的將是一個varchar,myOrder將是一個int):
INSERT INTO myTable的(mynumber的,myOrder)選擇 「0」 - 「99」,選擇1- 100
我有一種感覺,這是無法完成的,但我想我會問。
的一個子集,您應該能夠無需創建一個全新的表...只要你有一張表格,並且你希望添加儘可能多的記錄,即使對內容沒有影響...你可以用MySQL查詢變量來做...
insert into YourTable (YourSequence, YourStringVersion, field3)
(SELECT
@seq:= @seq+1 YourSequence,
CONVERT(@seq, CHAR(8)) YourStringVersion,
"Other Defaults" field3
FROM
(select @seq := 1) vars,
SomeTableWithAtLeast100Records limit 100) JustToAdd
您可以寫出了「選擇0-99,選擇1-100」爲一組工會:
select 0 as num, 1 as order
union all
select 1 as num, 2 as order
,然後插入基於該結果集。雖然沒有太多樂趣,但最好的方法可能是通過存儲函數和光標 - 但是一次只能有1行。
我無法想象你正在努力解決哪個問題,哪個需要解決方案 - 你似乎也會用類似奇怪的問題發表大量的問題。
既然你正在尋找一個代碼解決方案,你可能想要做很多次。簡短的回答是使用的程序與循環,還是要保持一個表(甚至可能是行「mytable的」內再做
INSERT INTO myTable (mynumber, myorder, another)
SELECT mynumber, myorder, 'new'
FROM myTable WHERE another='TEMPLATE';
特殊的指責......我以前的哪些問題對你來說看起來有點奇怪?至於我在這裏的需求,他們非常直截了當,我有一張桌子,代表一系列完全相同的順序元素(想象一排排座位,例如),我需要填充表格。顯然這可以通過腳本或存儲過程來完成,但我很好奇它是否可以用直接的SQL來完成。 – 2011-04-11 16:56:43
太棒了!非常感謝,像夢一樣工作。 – 2011-04-11 17:22:21