如何更新表中的所有列?

时间:2015-03-05 12:22:51

标签: php postgresql codeigniter

我有两张桌子A和

update A set (*) = (select  * from B where id = 1) where session_id ='123';

两个表都为表A上的session_id保存了列EXCEPT。有关如何在不声明所有列的情况下更新记录的任何想法吗?

输出应该是以下查询的结果,但我应该使用它:

insert into A select * from B;
update A set session_id ='a';

我想知道如何将session_id首先插入所有记录。

1 个答案:

答案 0 :(得分:1)

我不熟悉codeigniter细节,但是如果表B中的所有列都在表A中以相同的顺序声明,然后是session_id,那么你可以这样做:

INSERT INTO "A"
  SELECT *, '123'
  FROM "B"
  WHERE id = 1;

如果{A}在表A中排在第一位,后面是声明顺序的表B的所有列,那么您可以在session_id语句中简单地交换列顺序。如果订单不相同(除了SELECT),那你就不走运了。