常用sql记录

备份一张表

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;

你可能感兴趣的:(sql,数据库)