我正在處理一個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手冊。你還應該閱讀關於連接和規範化。 –