如何更新 table 中的所有列?

How can I update all columns in table?

我有两个 tables A 和

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

两个 table 都有保存列,除了 table 上的 session_id A. 知道如何在不声明所有列的情况下更新记录吗?

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

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

我想知道如何先插入 session_id 然后再插入所有记录。

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

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

如果 session_id 在 table A 中排在第一位,然后是 table B 中声明顺序的所有列,那么您只需交换 SELECT 上的列顺序陈述。如果顺序不相同(session_id 除外),那你就不走运了。