2013-02-18 47 views
1

我有我的數據庫中有兩個表,他們都堅持由用戶來完成某些任務,命名爲taches第一臺和第二個admin_taches二者均包含一個名爲TASK_ID列是在表中是唯一兩張桌子,兩個獨特的ID?

有沒有可能讓我在兩個表中使task_id是唯一的?我需要task_id的值是唯一的!我怎樣才能做到這一點。

我使用的Oracle工作臺作爲IDE爲我的數據庫

編輯: id是自動遞增每個表上插入

+0

你可以分享一些關於'task_id'的更多細節嗎?它從何而來?它是數據庫中的索引還是主鍵?它是否自動遞增?你是否在你的應用程序邏輯中設置它?如果在添加其他項目之前在任何表格中使用了ID,您是否可以簡單地運行檢查? – poke 2013-02-18 21:46:52

+0

事實上,你問如何使這兩個表獨一無二的應該告訴你,這不是一個好主意。正確的方法是組合這些表格。 – 2013-02-18 23:19:34

回答

2

扔他們都在一個表中,添加一列admin enum('no','yes') default 'no'

另一種解決方案是在ID前面加上一個字母,但不存在於ID中。

+0

我認爲你的回答是我的案例中最簡單的workaroud,你能告訴我如何在第二張表上添加一個字母。例如顯示a_1,a_2,a_3 ...我需要列自動遞增。 – 2013-02-18 21:53:19

+0

不要把它放在桌子上,無論你在哪裏使用,都要加上它。 – 2013-02-18 21:54:18

1

您可以通過創建一個SEQUENCE對象來做到這一點。這是由DBMS維護的一個序列。然後,當你插入任何一個表,你可以使用

我用這對非Oracle數據庫的sequence.nextval,但看着下面的頁面,甲骨文似乎支持他們還有:http://www.techonthenet.com/oracle/sequences.php

編輯:我只是意識到,你標記爲「MySql」,而不是Oracle。如果你使用MySql,我不會認爲這個語法是受支持的。

+0

我同意這個迴應,一個SEQUENCE對象將保證你的task_id在這兩個表中都是唯一的。不過,下面列出的另一種方法(一個表添加一個列管理指標解決方案)將適用於兩個表之間的數據集合適的情況。 – Jordan 2013-02-18 21:55:01

+1

MySQL不支持序列。 – 2013-02-18 21:55:11