我有一个将数据保存到表中的应用程序,例如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
这里我只是将 DB2 的 id 增加 DB1 的 max(id) 以避免冲突。它工作得很好。
但是有些数据库有大量记录。我可以使用“max_id”变量来获取这些插入语句。然后我可以从该过程内的文件执行这些“插入”语句吗?或者有什么更好的解决办法..
最佳答案
通过添加序列使“Id”列自动递增。 然后创建一个在插入时递增的触发器。
关于Mysql程序从文件插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19902768/