在 OceanBase 数据库中,如果你使用 INSERT INTO table_name SELECT * FROM table_name
这种方式,那么只有当两个查询条件完全相同时,才会复制所有的列。如果存在任何差异,那么结果集只包含那些在这两个查询中都被选择的列。
因此,如果你的两条记录在某个字段上存在差异,可能会导致某些字段被忽略。在这种情况下,你需要明确指定需要复制的字段。例如:
INSERT INTO new_table (id, name, age, number)
SELECT id, name, age, number FROM old_table
这样,只有当 old_table
和 new_table
的 id
, name
, age
, number
这四个字段都在两个查询中都存在时,它们的值才会被复制。
至于你提到的 number
字段在 INSERT
操作后变为 NULL
的问题,可能是因为你在 SELECT
语句中没有选择 number
字段,或者在 INSERT
语句中 number
字段的列名拼写错误。请确认你的 SELECT
语句和 INSERT
语句中 number
字段的写法是否正确。