postgresql修改主键
时间: 2023-08-05 16:04:21 浏览: 160
要修改 PostgreSQL 表的主键,您可以执行以下步骤:
1. 删除原来的主键约束
```sql
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
```
其中 `table_name` 是要修改主键的表名,`constraint_name` 是要删除的主键约束的名称。
2. 添加新的主键约束
```sql
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
```
其中 `column_name` 是要成为新主键的列名。
请注意,如果要修改主键列的数据类型,则需要先将其转换为一种兼容的类型,否则会出现错误。在执行这些操作之前,请务必备份您的数据。
相关问题
postgresql获取主键信息
要获取PostgreSQL数据库中表的主键信息,可以使用以下查询语句:
```sql
SELECT
tc.constraint_name,
tc.table_name,
kcu.column_name
FROM
information_schema.table_constraints AS tc
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
WHERE
tc.constraint_type = 'PRIMARY KEY'
AND tc.table_schema = 'public' -- 如果你使用的是不同的模式,请替换为相应的模式名称
ORDER BY
tc.table_name,
kcu.ordinal_position;
```
这个查询将返回每个表的主键约束名称、表名称以及主键列名称。请注意,这个查询只会返回主键约束类型为'PRIMARY KEY'的表,并且假设你的表位于公共模式(public),如果不是,请根据你的实际情况进行修改。
postgresql 查询有主键的表
你可以使用以下SQL语句查询拥有主键的表:
```sql
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public'
AND table_type='BASE TABLE'
AND table_name IN (SELECT table_name
FROM information_schema.table_constraints
WHERE constraint_type='PRIMARY KEY');
```
这个查询将会返回所有在public架构下,拥有主键的表的名称。请注意,如果你的表不在public架构下,你需要将上面的查询中的table_schema参数修改成你的架构名称。
阅读全文