我正在用PostgreSQL做一个数据库。在表中的一个属性中,应该可以insert数字:“+”和“-”,但不能使用“a”、“B”或“!”.
当我使用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;

关于postgresql - PostgreSQL检查插入输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37441119/

10-12 07:16