2016-05-02 21 views
0

我有兩個表。 a和b。當相同的值不在b.column1中時,我想拒絕用戶在a.column1中輸入值。我怎樣才能做到這一點。 b.column1不是唯一的。 例如 a.column1具有值(22,23) 和 b.column2具有值(22300,23)我想讓用戶只需在其他表中的值存在時在sql中的表中輸入值

表一對兩列的外鍵的表B,b.column1 & b.column2。 表b上的這兩列是唯一的,我將它們定義爲表b的pk。它們與表格a上的兩列有關。 現在,如果用戶輸入22或23或300,那麼可以,但沒有任何其他值。 你能幫我嗎 讚賞

+0

用戶是否自己寫插入語句? –

+0

沒有。他們只是通過一個TextBox進入。他們沒有訪問數據庫 – karl

+0

表b可以有數據爲(22,23,23,23,22,300,300) – karl

回答

0

很簡單。這是你需要一個外鍵的地方。

ALTER TABLE A 
ADD FOREIGN_KEY(B_Col1) 
REFERENCES B(column1); 
+0

我使用了外鍵(但它不在一列上,在列1和列2上)。我期待你說的,它的工作原理,但它不工作 – karl

+0

請編輯問題來表明這一點。另外,提供真實的例子。 – Spade

+0

對不起,現在我編輯了這個問題。 – karl

0
IF EXISTS (SELECT * FROM TableB WHERE Column1=23) 
    INSERT INTO TableA (column1) Values(23) 
ELSE 
select 'error' 
+0

非常感謝。有效 – karl

0

創建a.colum1檢查約束。像這樣:

ALTER TABLE 
ADD CONSTRAINT chk_a_colum1 CHECK (a.column1 NOT IN (SELECT b.column1 FROM b)); 
相關問題