INSERT INTO update pgsql
时间: 2025-01-07 11:41:04 浏览: 6
### 在 PostgreSQL 中使用 `INSERT INTO` 语句
在 PostgreSQL 中,`INSERT INTO` 语句用于向表中插入新的记录。语法格式如下:
```sql
INSERT INTO table_name (column1, column2, column3, ...columnN)
VALUES (value1, value2, value3, ...valueN);
```
如果要向表中的所有字段插入值,则可以省略字段列表,只需提供相应的值即可[^5]。
对于更复杂的情况,比如希望在遇到唯一约束冲突时不报错而是采取特定行动(类似于 MySQL 的 `INSERT INTO IGNORE`),PostgreSQL 提供了 `ON CONFLICT` 子句来实现这一功能。这使得可以在尝试插入重复键时选择忽略该操作或更新现有条目[^1]。
当涉及到批量数据转移或是基于某些条件筛选的数据复制需求时,还可以利用 `INSERT INTO...SELECT` 结构。它可以从源表读取符合条件的数据并将其直接写入目的表内,非常适合于跨库同步、历史存档等场景[^2]。
#### 示例代码
下面给出几个具体的例子以帮助理解上述概念的应用方式:
- **简单插入单行**
```sql
-- 假设有一个名为 'users' 的用户信息表格
INSERT INTO users (id, name, age)
VALUES (1, 'Alice', 30);
```
- **处理潜在的重复项**
```sql
-- 当 id 列存在唯一索引时防止因重复而失败
INSERT INTO users (id, name, age)
VALUES (1, 'Bob', 28)
ON CONFLICT (id) DO NOTHING;
```
- **从另一张表导入数据**
```sql
-- 将 old_users 表里的活跃状态为 true 的成员迁移到 new_members 表里
INSERT INTO new_members (member_id, member_name, join_date)
SELECT user_id, full_name, registration_date
FROM old_users WHERE active_status = TRUE;
```
阅读全文