我有這張桌子:
CREATE TABLE tb_athlete
(
athlete_id CHARACTER(7) NOT NULL,
name CHARACTER VARYING(50) NOT NULL,
country CHARACTER(3) NOT NULL,
substitute_id CHARACTER (7),
CONSTRAINT PK_tb_athlete
PRIMARY KEY(athlete_id),
CONSTRAINT FK_athlete_substitute
FOREIGN KEY (substitute_id) REFERENCES tb_athlete(athlete_id)
);
我想添加一個限制,因為在運動員國家是ESP.
我嘗試了以下方法,但不確定在哪里放置WHERE條件:
ALTER TABLE tb_athlete
ALTER COLUMN subsitute_id
CHARACTER(7) NOT NULL
WHERE country LIKE 'ESP';
關于如何解決這個問題的任何想法?(:
我也嘗試使用 CHECK,但我不確定我是否正確實施
ALTER TABLE tb_athlete
ADD CONSTRAINT check_substitute_id
CHECK (substitute_id IS NULL OR country LIKE 'ESP');
uj5u.com熱心網友回復:
這應該作業:
CONSTRAINT check_substitute_id CHECK (country != 'ESP' OR substitute_id IS NOT NULL)
演示
uj5u.com熱心網友回復:
在我這樣解決之前,我遇到了同樣的問題:
ALTER TABLE tb_athlete ADD CONSTRAINT contraint check (tb_athlete.substitute_id is not null or tb_athlete.country LIKE 'ESP');
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/353000.html
標籤:sql PostgreSQL
