Mysql程序从文件中插入数据

时间:2013-11-11 09:22:05

标签: mysql stored-procedures

我有一个将数据保存到表格中的应用程序,例如 my_table

my_table
id | name | salary

这是一个数据输入应用程序,没有集中式数据库。一旦完成所有数据条目,我就必须合并数据库。我的计划是从 DB2 导出插入语句并将其附加到 DB1 。所以我写了一个程序如下:

CREATE PROCEDURE insertToTable
DECLARE max_id INT DEFAULT 1
BEGIN
    SELECT MAX(id) INTO max_id FROM my_table

    INSERT INTO table(id,name,salary) VALUES(max_id+1,'tom',1000);
    INSERT INTO table(id,name,salary) VALUES(max_id+1,'john',1500);
    ....//a lot of statements 

END

这里我只是通过DB1的max(id)增加DB2的id以避免冲突。它工作正常。

但是有些数据库有大量的记录。我可以使用'max_id'变量获取这些插入语句。然后我可以从该过程中的文件执行这些'insert'语句。或者有更好的解决方案..

2 个答案:

答案 0 :(得分:1)

通过添加序列使“Id”列自动增量。 然后创建一个在插入时递增的触发器。

答案 1 :(得分:0)

我想我需要这个触发器:

CREATE TRIGGER insert_test BEFORE INSERT ON table my_table
FOR EACH ROW
  BEGIN
      SET @max_id = select max(id) from my_table;
        IF NEW.id >= @max_id THEN 
            NEW.id = @max_id + 1;
        END IF;
END;

感谢您的建议。