世界上最柔软的人_视频一区视频二区制服丝袜_婬荡乱婬91成人网站_亚洲国产综合人成综合网站_日韩精品无码去免费专区

2022年01月16日整理發(fā)布:mysql添加分區(qū)出錯怎么辦

2023-08-03 12:11:19 來源:互聯(lián)網(wǎng)

關(guān)系型數(shù)據(jù)庫添加分區(qū)出錯報(bào)"1503"錯誤的原因:每一個分區(qū)表中的公式中的列必須在主鍵"唯一密鑰"中包括否則就報(bào)錯;解決方法:先使用"主鍵"關(guān)鍵字創(chuàng)建一個復(fù)合主鍵將分區(qū)字段加入到主鍵中再進(jìn)行分區(qū)操作。

(推薦教程:mysql視頻教程)

如果分區(qū)字段沒有包含在主鍵字段內(nèi)如表A的主鍵為身份證,分區(qū)字段為創(chuàng)建時間按時間范圍分區(qū)代碼如下:


(資料圖片)

創(chuàng)建表T1(

id int(8)不為空自動增量,

創(chuàng)建時間日期時間不為空,

主鍵(標(biāo)識)

)ENGINE=InnoDB AUTO _ INCREMENT=1 DEFAULT CHARSET=ut F8

按范圍劃分(截止日(創(chuàng)建時間))

分區(qū)p0蛋白值小于(至_天(" 2010-04-15 ")),

分區(qū)第一親代值小于(至_天(" 2010-05-01 ")),

分區(qū)p2值小于(至_天(" 2010-05-15 ")),

分區(qū)p3值小于(至_天(" 2010-05-31 ")),

分區(qū)p4值小于(截止日期(" 2010-06-15 ")),

分區(qū)p19值小于最大值);錯誤提示:#1503

主鍵必須包含表的分區(qū)函數(shù)中的所有列主鍵的限制每一個分區(qū)表中的公式中的列必須在主鍵"唯一密鑰"中包括

在關(guān)系型數(shù)據(jù)庫的官方文檔里是這么說明的

18.5.1.分區(qū)鍵、主鍵和唯一鍵

本節(jié)討論分區(qū)鍵與主鍵和唯一鍵的關(guān)系。控制這種關(guān)系的規(guī)則可以表示如下3360分區(qū)表的分區(qū)表達(dá)式中使用的所有列都必須是該表可能具有的每個唯一鍵的一部分。

換句話說,表上的每個唯一鍵都必須使用表的分區(qū)表達(dá)式中的每個列。(這也包括表的主鍵,因?yàn)楦鶕?jù)定義,它是唯一的鍵。這種特殊情況將在本節(jié)后面討論。)例如,以下每個表創(chuàng)建語句都是無效的:

分區(qū)字段必須包含在主鍵字段內(nèi)至于為什么關(guān)系型數(shù)據(jù)庫會這樣考慮程序員的斑竹是這么解釋的:

為了確保主鍵的效率。否則同一主鍵區(qū)的東西一個在A分區(qū)一個在B分區(qū)顯然會比較麻煩版權(quán)

下面討論解決辦法畢竟在一張表里日期做主鍵的還是不常見。

方法1:

順應(yīng)關(guān)系型數(shù)據(jù)庫的要求就把分區(qū)字段加入到主鍵中組成復(fù)合主鍵

創(chuàng)建表T1(

id int(8)不為空自動增量,

創(chuàng)建時間日期時間不為空,

主鍵(標(biāo)識,創(chuàng)建時間)

)ENGINE=InnoDB AUTO _ INCREMENT=1 DEFAULT CHARSET=ut F8

按范圍劃分(截止日(創(chuàng)建時間))

分區(qū)p0蛋白值小于(至_天(" 2010-04-15 ")),

分區(qū)第一親代值小于(至_天(" 2010-05-01 ")),

分區(qū)p2值小于(至_天(" 2010-05-15 ")),

分區(qū)p3值小于(至_天(" 2010-05-31 ")),

分區(qū)p4值小于(截止日期(" 2010-06-15 ")),

分區(qū)p19值小于最大值);測試通過分區(qū)成功。

方法2:

既然關(guān)系型數(shù)據(jù)庫要把分區(qū)字段包含在主鍵內(nèi)才能創(chuàng)建分區(qū)那么在創(chuàng)建表的時候先不指定主鍵字段是否可以呢

測試如下:

創(chuàng)建表T1(

整數(shù)(8)不為空,

創(chuàng)建時間日期時間不為空

)ENGINE=InnoDB AUTO _ INCREMENT=1 DEFAULT CHARSET=ut F8

按范圍劃分(截止日(創(chuàng)建時間))

分區(qū)p0蛋白值小于(至_天(" 2010-04-15 ")),

分區(qū)第一親代值小于(至_天(" 2010-05-01 ")),

分區(qū)p2值小于(至_天(" 2010-05-15 ")),

分區(qū)p3值小于(至_天(" 2010-05-31 ")),

分區(qū)p4值小于(截止日期(" 2010-06-15 ")),

分區(qū)p19值小于最大值);測試通過分區(qū)成功好的,版權(quán)所有

繼續(xù)添加上主鍵

Altert1添加主鍵(ID)錯誤1503與之前相同的錯誤。

Altert1 add主鍵(ID,createtime)成功創(chuàng)建了主鍵,但它仍然是一個復(fù)合主鍵。似乎沒有出路。我們必須聽指令。

主鍵已成功創(chuàng)建,標(biāo)識已添加到自增字段設(shè)置中。

alter table t1更改id id int不為null auto _ increment

alter table t1 auto _ increment=1;結(jié)論MYSQL的分區(qū)字段必須包含在主鍵字段中。以上就是mysql添加分區(qū)錯誤時如何做的細(xì)節(jié)!

來源:php中文網(wǎng)站

標(biāo)簽:

為您推薦

新聞快訊