- 第 1 章 PostgreSQL 安装
- 第 2 章 Administration
- 第 3 章 PostgreSQL 系统表
- 第 4 章 PostgreSQL 命令
- 第 5 章 数据定义(DDL)
- 第 6 章 DML
- 第 7 章 SQL
- 第 8 章 事务处理与锁
- 第 9 章 PostgreSQL GUI
- 第 13 章 Barman for PostgreSQL
- 第 11 章 pgbouncer - lightweight connection pooler for PostgreSQL
- 第 12 章 Foreign data wrappers
- 第 14 章 Connector
- 第 15 章 Replication
- 第 16 章 FAQ
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
第 6 章 DML
第 6 章 DML
目录
6.1. INSERT
6.1.1. 自动截取字符串
CREATE TABLE test (c varchar(5));
现在开始插入数据库,每次增加一个长度
test=> INSERT INTO test VALUES ('1'); INSERT 0 1 test=> INSERT INTO test VALUES ('12'); INSERT 0 1 test=> INSERT INTO test VALUES ('123'); INSERT 0 1 test=> INSERT INTO test VALUES ('1234'); INSERT 0 1 test=> INSERT INTO test VALUES ('12345'); INSERT 0 1 test=> INSERT INTO test VALUES ('123456'); ERROR: value too long for type character varying(5) test=> INSERT INTO test VALUES ('1234567'); ERROR: value too long for type character varying(5) test=>
超出长度会提示 ERROR: value too long for type character varying(5)
通过 ::varchar(5) 截取5前五个字符,后面抛弃
test=> INSERT INTO test VALUES ('123456'::varchar(5)); INSERT 0 1 test=> INSERT INTO test VALUES ('1234567'::varchar(5)); INSERT 0 1 test=> INSERT INTO test VALUES ('12345678'::varchar(5)); INSERT 0 1
超过的部分被自动截取
test=> select * from test; c ------- 1 12 123 1234 12345 12345 12345 12345 (8 rows)
6.1.2. INSERT IGNORE INTO
PostgreSQL 没有 MySQL INSERT IGNORE INTO 用法,可以使用下面方法替代
insert into profile(wechat,username,name) select wechat,username,name from member where description like '%5%' and NOT EXISTS (select 1 from profile where profile.wechat = member.wechat);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论