我正在处理一个php脚本,它将数据编译为postgresql数据库的插入语句。它最初是为mysql数据库编写的,所以当然有一些差异。postgresql不喜欢多个逗号
有一件事我碰到,我似乎无法弄清楚,是PostgreSQL的不喜欢这种类型的语句:
INSERT INTO table (col1, col2, col3, col4) VALUES ('value',,'value','value');
任何有缺失值时,查询在犯错点的双重逗号。
关于如何绕过这个任何想法?这些字段都有不同的数据类型,所以使用''作为填充符会失败,如果col期望int。
我觉得'NULL'会成为我的选择,但我遇到了另一个问题。如何判断我读的单元格是否空白。我试过'if($ cell ==''或$ cell =='')',但它没有捕获缺失的值。 – KingRichard
NULL不是空字符串 - 不在ANSI SQL数据库上。 –
空字符串'',一个带有单个空格的字符串''和NULL是不同的东西。你必须测试'column IS NULL'或'IS NOT NULL' - 你不能使用'= NULL'。有关原因,请参阅介绍性数据库理论手册或postgresql手册。你还应该阅读关于连接和规范化。 –