PostgreSQL中插入数据
这是Postgresql最短,最简单插入方法,你只需要按顺序的插入指定的值,所以,如果你有10列,你必须指定10个值。
-- 假设这里有个 "users" 表只有3列:: first_name, last_name, email, 并且按此顺序排列
users values ('John', 'Doe', '[email protected]');
如果你有很多列,当时你想指定其中某一列:
insert into users (first_name) values ('John');
如果想在列中插入JSON数据,只需要将JSON数据包裹在单引号字符串中。
insert into users (preferences) values ('{ "beta": true }')
如果插入的数据违背了一个特定的约束,这是你可以使用 Postgres 在冲突子句中指定当发生这种情况时该怎么做,例如:想象你有一个webhook系统,你想优雅的处理webhook中重复的事情。
-- 如果我们已经记录(捕获)到 webhook 的冲突,就什么都不要做。
insert into stripe_webhooks (event_id)
values ('evt_123')
on conflict do nothing;
你也可以在冲突的时候执行 "upserts" (更新或插入)数据。
-- 如果你有一个唯一的email索引
insert into users (email, name)
value ('[email protected]', 'Jane Doe')
on conflict (email) do update set name = excluded.name; -- excluded.name 指的是 'Jane Doe'
Last updated