本文整理了一些PostgreSQL相对于标准SQL或者MySQL的一些特殊语法。
Limit
PG:
limit n
limit n offset m
MySQL:
limit n
limit m,n
Like/ILIKE:
提供的一个扩展ILIKE:同LIKE,只是不区分大小写。
符号表示:
LIKE: ~~
ILIKE: ~~*
NOT LIKE: !~~*
NOT ILIKE: !~~*
获取最新插入的id:
INSERT INTO link (url, NAME, last_update)
VALUES('http://www.postgresql.org','PostgreSQL',DEFAULT)
RETURNING id;
insert into weibo.weibo_may(content) values('test') returning id;
也可以插入之后返回整条数据:
insert into weibo.weibo_may(content) values('test') returning *;
自增:
创建表的时候使用SERIAL数据类型。
CREATE TABLE weibo.weibo_may
(
id serial NOT NULL,
content text,
CONSTRAINT idx_pk_id PRIMARY KEY (id)
DEFERRABLE INITIALLY IMMEDIATE
)
WITH (
OIDS=FALSE
);
ALTER TABLE weibo.weibo_may
OWNER TO postgres;
注意这个类型只能create的时候使用,已经存在的表无法修改字段为SERIAL类型。(不同于mysql的auto increment)
参考: http://stackoverflow.com/questions/787722/postgresql-autoincrement
DELETE:
DELETE USING:使用另一张表的数据作为删除条件:
delete from a
using b
where a.id=b.id
删除后返回:使用delete returning
delete from weibo.weibo_may
where id=1
returing *;
更新:
update from: 使用一张表的数据更新另一张表
update a
set name=b.name
from<