备份一张表
PostgreSQL
CREATE TABLE new_table AS
SELECT * FROM old_table;
-- 下面这个比上面好,这个复制表结构时,会把默认值、约束、注释都复制
CREATE TABLE new_table (LIKE old_table INCLUDING ALL) WITHOUT OIDS;
INSERT INTO new_table SELECT * FROM old_table;
?
CREATE TABLE new_table LIKE old_table;
INSERT INTO new_table SELECT * FROM old_table;
清空一张表的数据
这个命令会清除表中的所有记录,但不会影响表的结构和属性。
请注意,truncate操作是不能回滚的,清除之后的数据无法恢复。使用时请确保已经做好了数据备份或者对当前数据无需保留。
TRUNCATE TABLE table_name;
填充主键
pg数据库,主键的生成规则是自增:
nextval('department_department_key_seq'::regclass)
UPDATE department SET department_key = nextval('department_department_key_seq'::regclass) WHERE department_key IS NULL;