我想在一个插入中添加100行,用一系列数字(及其等效字符串)填充下一个字段。
换句话说,沿着这些方向的东西(myNumber将是一个varchar,myOrder将是一个int):
插入myTable(myNumber,myOrder)选择“0” - “99”,选择1-100
我有一种感觉,这是无法做到的,但我想我会问。
答案 0 :(得分:2)
你应该能够不创建一个全新的表...只要你有一个包含你希望添加的记录数量的表,即使对内容没有影响......你可以做使用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
答案 1 :(得分:0)
您可以将“选择0-99,选择1-100”作为一组工会写入:
select 0 as num, 1 as order
union all
select 1 as num, 2 as order
然后根据该结果集插入。虽然不是很有趣 - 最好的方法可能是通过存储函数和游标 - 但这一次只能是1行。
答案 2 :(得分:0)
我无法想象你试图解决哪些问题需要解决的问题 - 你似乎用类似的奇怪问题发布了很多问题。
由于您正在寻找代码解决方案,因此您可能希望这么做很多次。简短的回答是使用带循环的过程,或者维护表(甚至可以是'myTable'中的行的子集,然后执行
INSERT INTO myTable (mynumber, myorder, another)
SELECT mynumber, myorder, 'new'
FROM myTable WHERE another='TEMPLATE';