聯合主鍵有什麼用?
聯合主鍵就是用2個或2個以上的欄位組成主鍵。用這個主鍵包含的欄位作為主鍵,這個組合在資料表中是唯一,且加了主鍵索引。
可以這麼理解,比如,你的訂單表裡有很多欄位,一般情況只要有個訂單號bill_no做主鍵就可以了,但是,現在要求可能會有補
充訂單,使用相同的訂單號,那麼這時單獨使用訂單號就不可以了,因為會有重複。那麼你可以再使用個訂單序列號bill_seq來
作為區別。把bill_no和bill_seq設成聯合主鍵。即使bill_no相同,bill_seq不同也是可以的。
alter table 表 add constraint pk_name primary key (列1,列2,…)
聯合主鍵的好處是不需要因為需要主鍵而增加一個無用的主鍵列 例如如果不用聯合主鍵你必須增加個列ID設定主鍵 但這個ID列
無任何作用 至於在什麼情況下使用,就像剛才舉例的,當你這個表的主鍵ID無任何用處,那麼就用聯合主鍵好了,你可以節約
一個列的空間,但如果這表的ID列要做為別的表的外來鍵的話,就不能用聯合主鍵了。
聯合主鍵就是確定一條記錄的唯一性啊
比如這種時候
商品品牌 商品型號
諾基亞 920
三星 NOTE2
諾基亞 8088
比如這樣商品品牌可能有重複,都是諾基亞,但是諾基亞廠商生產的商品型號是不會重複的
也比如,可能好多品牌都有920這個型號,但是一個品牌只有一個920的型號
所以就靠這樣的聯合主鍵來確定這條記錄的唯一性
建立方法如下
create table product(
pro_name varchar(20),
pro_type varchar(20),
primary key (pro_name,pro_type)
);
相關推薦
hybris items.xml 中表的聯合主鍵實現
實現 have option 字段 reat direct combined 指定 org 在 items.xsd中是這麽定義 unique的 <xs:attribute name="unique" type="xs:boolean" use="optional"&g
Oracle創建聯合主鍵
bsp font acl con pan span tex size 主鍵 先創建個表: 1)create table test ( sno char(12), name char(4), CONSTRAINT PK_TAB PRIMARY KEY (sno,
hibernate 聯合主鍵
blog package site http Coding logs override ide pac xml配置 需要一個主鍵類: package com.bxw.entity; import java.io.Serializable; public class
hibernate MTM 聯合主鍵
hash ret hbm.xml utf oct import override 映射 ping //適用於表裏沒有其他列,只有主鍵 //Course.java實體類 package com.tao.pojo; import java.util.HashSet; imp
SQL Server(MySql)中的聯合主鍵(聯合索引) 索引分析
判斷 reat 系統 lap creat insert 結果 問題 select 最近有人問到這個問題,之前也一直沒有深究聯合索引具體使用邏輯,查閱多篇文章,並經過測試,得出一些結論 測試環境:SQL Server 2008 R2 測試結果與MySql聯合索引查詢機制類似,
函式儲存過程和聯合主鍵
建立批量插入資料 第一個命令是DELIMITER //,它與儲存過程語法無關。 DELIMITER語句將標準分隔符 - 分號(;)更改為://。 在這種情況下,分隔符從分號(;)更改為雙斜槓//。為什麼我們必須更改分隔符? 因為我們想將儲存過程作為整體傳遞給伺服器,而不是讓mysql工具一次解釋每個語句。
Oracle聯合主鍵
轉https://www.cnblogs.com/king-xg/p/6721272.html alter table tablename add constraint unionkeyname primary key (column1,column2); 上面語句中: tablename為要新增聯合
MySQL聯合主鍵自增分別產生遞增id
比如員工表,要在部門內遞增生成編號 ,例如 t_user表 dept user_no_name --------
hibernate 聯合主鍵出現MySQLIntegrityConstraintViolationException錯誤
問題 今天在使用SSH框架做一個專案中的級聯插入時,報一個錯誤(root error,其他錯誤很多,不過都是因為這個引起)“com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationExce
Chloe聯合主鍵查每個ID最新的資料
聯合主鍵如圖,對於一個HouseHoldID,可能對應不同的GetTime。所以一個HouseHoldID,可能有多條資料存在。 現在要查詢所有所有HouseHoldID最新時間的資料, 使用SQL語句查詢: select HouseHoldID ,max(GetTim
SQL 聯合主鍵跨表刪除最小時間那條重複資料,跨表 for UPdate
一、過濾出需要刪除的重複資料的ID select aac001 from ei_app_recheck_citi_id inner join std_app on std_app.app_id=ei_app_recheck_citi_id.app_id where s
phoenix 聯合主鍵的探索
連線上phoenix,建一個測試表: create table test12(email varchar not null,id integer not null,name varchar not null,age integer,aihao varchar CONSTRA
python django model聯合主鍵
今天,在家試試django的model的設定,如何設定的聯合主鍵,我經過查資料和實踐,把結果記錄如下: 例如: class user(Model): id=AutoField(primary_key=True) name = CharFi
超鍵、候選鍵、主鍵、外來鍵、聯合主鍵、複合主鍵
首先看看各種鍵的定義: 超鍵(super key):在關係中能唯一標識元組的屬性集稱為關係模式的超鍵(只要有一個鍵唯一,再隨便組其他的鍵,合起來叫主鍵) 候選鍵(candidatekey):不含有多餘屬性的超鍵稱為候選鍵(最小的超鍵,ID,身份證號) 主鍵(primary key):
Android sqlite聯合主鍵的使用
一、問題分析 在操作sqlite資料庫的時候,在測試的時候出現了資料的一個不正常的增加,造成的資料的異常,後來發現是sql語句出現的問題。 分析:每次在上傳資料的時候,可能用的是同一個包名,造成資料插不進去,就會把所有的資料都上傳到伺服器,這
從一個審批需求看資料庫設計——聯合主鍵的使用
最近工作挺忙,已經接近996了,所以部落格更新也少了。今天忙裡偷閒,分享一個最近遇到的一個數據庫設計問題。業務需求是: 針對一條人員資訊的資料進行審批操作 在進行審批時要看到審批前後資料的修改 同一人員的審批資料只能存在一條 審批通過後
hibernate3.3.2學習筆記---聯合主鍵
聯合主鍵主要思想就是把主鍵換成一個類,在類裡進行主鍵對應屬性的集合。 在主鍵類裡,要重寫equals方法,hashCode方法,implements Serializable。 重寫equals是為了在類中確保主鍵的唯一性,與資料庫保持一致。 重寫hashCode是為了:當
[轉]邏輯主鍵和聯合主鍵,一定要討論清楚!
今天在做專案的資料庫設計時,突然發現自己在表的主鍵設定方面太過片面,對於邏輯主鍵和聯合主鍵的理解也很少。索性上網百度了一下,看到了一些論壇中的兄弟們的討論,其中很多的分析讓我頓時清醒了很多。下面開始貼上一些人的觀點和分析,如果原作者看到本文,發現有不妥之處,請郵件告之。 網友goldrain說: 我倒不反
Hibernate學習筆記(三)----ID生成策略、聯合主鍵
一、ID生成策略(參考hibernate_0400_ID) 1)xml生成id使用generator屬性 <idname="id" > <generatorclass="native"></generator
聯合主鍵建立的語法
create table cartitem(uid int not null , bid int not null,count int,bookname varchar(200),price decimal(12,0),image varchar(200),primary