我正在使用php和mysql作为网页,我想重用三个数据库表中的信息,类似于“另存为”操作。
表格相关为1-many,然后是1-many,树结构。
到目前为止,我已经通过使用php(类似于一个巨型表)展平树结构并将其存储在数组中来实现它。然后循环遍历每一行,甚至每行的每一部分,并为每一行插入带有查询的相应表。它有点工作,但是有很多代码可以看看每个帖子是否都有来自第三个表的信息(它可能是空的)。
现在,我的问题是,这可以以更有效的方式实施吗?以这种方式可能会对数据库进行大量查询。
这里的问题似乎是如何关联新帖子。我看过'SELECT INTO',但是由于我需要关联新键,我看不出它是如何工作的。另外,mysql_insert_id只给我最新的id,而不是全部。
答案 0 :(得分:0)
复制我知道的行的通常最快和最优雅的方法是:
复制行:
INSERT INTO tablename SELECT * FROM tablename WHERE id = 1;
查询新记录的ID:
SELECT LAST_INSERT_ID() AS lastID;
将该ID存储在PHP变量(此处未显示)中,然后更新相关表中的密钥:
UPDATE related_table_name SET key = '$lastID'
(id
需要是一个自动增量列才能使用,并且插入后应立即使用LAST_INSERT_ID()。)
参考: