1
我正在製作一個數據庫與PostgreSQL。在一個表中的一個屬性,應該是可能的insert
編號:「+」和「 - 」,但沒有其他字符像「A」,「B」或「!」。Postgresql檢查插入輸入
當我使用INSERT INTO
函數時,可以檢查輸入嗎? 我不知道,因爲我只是Postgre
的初學者,並沒有在互聯網上找到解決方案。
如果有人知道答案,謝謝!
我正在製作一個數據庫與PostgreSQL。在一個表中的一個屬性,應該是可能的insert
編號:「+」和「 - 」,但沒有其他字符像「A」,「B」或「!」。Postgresql檢查插入輸入
當我使用INSERT INTO
函數時,可以檢查輸入嗎? 我不知道,因爲我只是Postgre
的初學者,並沒有在互聯網上找到解決方案。
如果有人知道答案,謝謝!
而不是觸發器,您可以使用該列的值CHECK constraint。 (甚至使它成爲一個域或類型)
CREATE TABLE meuk
(id serial NOT NULL PRIMARY KEY
, thefield varchar CHECK (thefield SIMILAR TO e'[0-9\+\-]+')
);
INSERT INTO meuk(thefield) VALUES ('1234');
INSERT INTO meuk(thefield) VALUES ('+1234');
INSERT INTO meuk(thefield) VALUES ('-1234');
INSERT INTO meuk(thefield) VALUES ('-1234a'); -- this one should fail
SELECT * FROM meuk;
非常感謝。這有很大幫助。 – Klipo
我們甚至可以用支票約束使用正則表達式來完成。(或者只是使用數字數據類型之一)需要任何觸發器。請參閱https://www.postgresql.org/docs/9.5/static/sql-createtable.html(在:檢查) – wildplasser