0

我想确保当我执行我的查询时,它只适合一次

INSERT INTO SERVICEPAYANT ( TYPE_FLUX, DELAI ) VALUES (160,'9999');
INSERT INTO SERVICEPAYANT ( TYPE_FLUX, DELAI ) VALUES (161,'9999');
INSERT INTO SERVICEPAYANT ( TYPE_FLUX, DELAI ) VALUES (162,'9999');
INSERT INTO SERVICEPAYANT ( TYPE_FLUX, DELAI ) VALUES (163,'9999');
4

3 回答 3

1

我可以认为两列的组合是您的自然键吗?如果是这样,您需要一个唯一性约束,这将取决于您的数据库实现。

于 2012-05-29T14:43:44.443 回答
1

您将必须标记该列TYPE_FLUX,或者DELAI好像UNIQUE KEY您已经PRIMARY KEY在表中的其他列上有一个。这将在您输入agin161列时给您一个错误,或者在您再次输入列时给您一个错误。TYPE_FLUX'9999'DELAI

如果您希望两列的组合是唯一的,则创建一个组合UNIQUE KEY,这将永远不会让您161 and '9999'再次在表中输入TOGETHER

于 2012-05-29T14:43:56.923 回答
0
INSERT INTO SERVICEPAYANT 
            (TYPE_FLUX, 
             DELAI) 
SELECT 161, 
       '9999' 
FROM   dual  
WHERE  NOT EXISTS (SELECT 1 
                   FROM   SERVICEPAYANT 
                   WHERE  TYPE_FLUX = 161 
                          AND DELAI = '9999') 
于 2012-05-29T14:42:20.237 回答