首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle sql -是否可以在同一个表中有两个唯一的列

Oracle sql -是否可以在同一个表中有两个唯一的列
EN

Stack Overflow用户
提问于 2012-07-10 12:01:29
回答 1查看 680关注 0票数 1

在我的web应用程序中,我有客户名称和客户电话号码。我应该多次允许相同的电话号码。但我不应该允许多次输入相同的客户名称。如果已经有一个叫'Sean Patrick‘的客户,手机号是'6039274849’。将来,我不应该允许使用相同名称的新用户('Sean Patrick')。但我可以输入相同的手机号码('6039274849')。

假设表结构为

代码语言:javascript
复制
CUSTOMER TABLE

columns
CUSTOMER_ID UNIQUE
CUSTOMER NAME
CUST_MOB_NUMBER

我正在使用Spring ROO。我们将使用HibernateJPA(aspectJ代码)来处理与数据库相关的内容。

有谁能告诉我怎么做吗。到目前为止,我正在考虑制作两个列的用户界面。有没有什么方法可以让两个列同时具有唯一性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-10 12:38:04

假设需求是有意义的(说没有两个客户会有相同的名字是没有意义的--世界上有很多John Smith)。而且人们通常会有多个手机号码。

您可以同时将customer_idcustomer_name声明为唯一的(尽管customer_id几乎肯定应该声明为主键,而不仅仅是唯一的)

代码语言:javascript
复制
CREATE TABLE customer (
  customer_id      NUMBER PRIMARY KEY,
  customer_name    VARCHAR2(100) UNIQUE,
  cust_mob_number  VARCHAR2(20)
);

您还可以将两列的组合声明为唯一

代码语言:javascript
复制
CREATE TABLE customer (
  customer_id      NUMBER PRIMARY KEY,
  customer_name    VARCHAR2(100),
  cust_mob_number  VARCHAR2(20),
  CONSTRAINT uk_name_and_number UNIQUE( customer_name, customer_mob_number )
);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11406415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档