2013-02-18 86 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