如何将值从数据库中的所有表插入到一个表中

时间:2013-10-09 19:26:20

标签: php mysql insert alter

我的代码的最后一行有问题:

if(isset($_POST['kolona']))
{
foreach($_POST['kolona'] as $vrednost)
mysql_query("ALTER TABLE tablica ADD $vrednost text NOT NULL");
mysql_query("INSERT INTO tablica ( ".(implode(',',($_POST['kolona']))).") SELECT ".(implode(',',($_POST['kolona'])))." FROM druga");
}            

第一个查询是在表'tablica'中创建列,第二个查询假设从列中的所有表中的列中插入值,现在它只是硬编码,它只来自表'druga',但我不喜欢不知道如何通过所有表格,而不仅仅是'druga'。我尝试了一个循环,也尝试了内爆函数,但似乎没有任何工作。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以使用ON DUPLICATE KEY功能解决此类合并问题:

INSERT INTO target (id, column1, column2)
  SELECT id, column1, column2 FROM source
  ON DUPLICATE KEY UPDATE column1=VALUES(column1), column2=VALUES(column2)

只要您的PRIMARY KEY列没有源表和目标表之间的冲突,它就可以正常运行。