MySQL查询一次插入300行

时间:2010-11-17 09:18:51

标签: mysql

我在MySQL上有一个名为rent的表

id, int (5), autoincrement PRIMARY KEY

dNo, int (5)

pRent, varchar (5)

status, varchar (10)

我需要在此表中插入300行

id和dNo需要匹配

所以最后我们将id / dNo提升到300.如何做到这一点?

pRent的默认值为0

状态将具有空置的默认值

我应该使用什么SQL查询一次插入所有300行,id / dNo自动增量最多为300?

4 个答案:

答案 0 :(得分:1)

假设id设置为auto increment,您只需插入该批次,然后执行update table set dNo=id

我不确定您是否可以在插入期间设置dNo=id,因为ID为NULL

您可以将dNo默认值设置为id

修改:

INSERT INTO `test` (`id`, `id2`) VALUES ('2', `id`)

工作正常,但如果我设置id=NULL则不行。


您似乎必须使用triggers

CREATE TRIGGER set_nDo AFTER INSERT ON test FOR EACH ROW SET `nDo`=`id`

答案 1 :(得分:0)

好点“JV”。 但他也可以设置一个默认值,并在之后执行UPDATE,这样他就可以使用“id”处的自动增量值。

答案 2 :(得分:0)

我找到了插入1000的好方法

   INSERT INTO
    myTable
    (
    nr
    )
SELECT
    SEQ.SeqValue
FROM
(
SELECT
    (HUNDREDS.SeqValue + TENS.SeqValue + ONES.SeqValue) SeqValue
FROM
    (
    SELECT 0  SeqValue
    UNION ALL
    SELECT 1 SeqValue
    UNION ALL
    SELECT 2 SeqValue
    UNION ALL
    SELECT 3 SeqValue
    UNION ALL
    SELECT 4 SeqValue
    UNION ALL
    SELECT 5 SeqValue
    UNION ALL
    SELECT 6 SeqValue
    UNION ALL
    SELECT 7 SeqValue
    UNION ALL
    SELECT 8 SeqValue
    UNION ALL
    SELECT 9 SeqValue
    ) ONES
CROSS JOIN
    (
    SELECT 0 SeqValue
    UNION ALL
    SELECT 10 SeqValue
    UNION ALL
    SELECT 20 SeqValue
    UNION ALL
    SELECT 30 SeqValue
    UNION ALL
    SELECT 40 SeqValue
    UNION ALL
    SELECT 50 SeqValue
    UNION ALL
    SELECT 60 SeqValue
    UNION ALL
    SELECT 70 SeqValue
    UNION ALL
    SELECT 80 SeqValue
    UNION ALL
    SELECT 90 SeqValue
    ) TENS
CROSS JOIN
    (
    SELECT 0 SeqValue
    UNION ALL
    SELECT 100 SeqValue
    UNION ALL
    SELECT 200 SeqValue
    UNION ALL
    SELECT 300 SeqValue
    UNION ALL
    SELECT 400 SeqValue
    UNION ALL
    SELECT 500 SeqValue
    UNION ALL
    SELECT 600 SeqValue
    UNION ALL
    SELECT 700 SeqValue
    UNION ALL
    SELECT 800 SeqValue
    UNION ALL
    SELECT 900 SeqValue
    ) HUNDREDS
) SEQ

答案 3 :(得分:0)

300条记录不是很多,但根据您拥有数据的格式,您可以使用LOAD DATA