1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      mysql怎么聲明外鍵 mysql 定義外鍵

      mysql怎么設(shè)定外鍵

      為已經(jīng)添加好的數(shù)據(jù)表添加外鍵:

      你所需要的網(wǎng)站建設(shè)服務(wù),我們均能行業(yè)靠前的水平為你提供.標(biāo)準(zhǔn)是產(chǎn)品質(zhì)量的保證,主要從事網(wǎng)站設(shè)計(jì)、做網(wǎng)站企業(yè)網(wǎng)站建設(shè)、手機(jī)網(wǎng)站制作設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、成都品牌網(wǎng)站建設(shè)、網(wǎng)頁制作、做網(wǎng)站、建網(wǎng)站。創(chuàng)新互聯(lián)公司擁有實(shí)力堅(jiān)強(qiáng)的技術(shù)研發(fā)團(tuán)隊(duì)及素養(yǎng)的視覺設(shè)計(jì)專才。

      語法:alter table 表名 add constraint FK_ID foreign key(你的外鍵字段名) REFERENCES 外表表名(對(duì)應(yīng)的表的主鍵字段名);

      例: alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id)

      //FK_ID是外鍵的名稱

      /*

      CREATE TABLE `tb_active` (

      `id` int(11) NOT NULL AUTO_INCREMENT,

      `title` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,

      `content` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,

      `user_id` int(11) NOT NULL,

      PRIMARY KEY (`id`),

      KEY `user_id` (`user_id`),

      KEY `user_id_2` (`user_id`),

      CONSTRAINT `FK_ID` FOREIGN KEY (`user_id`) REFERENCES `tb_user` (`id`)

      ) ENGINE=InnoDB DEFAULT CHARSET=latin1

      */

      刪除外鍵

      語法: ALTER TABLE table-name DROP FOREIGN KEY key-id;

      例: ALTER TABLE `tb_active` DROP FOREIGN KEY 'FK_ID'

      自動(dòng)鍵更新和刪除:

      外鍵可以保證新插入的記錄的完整性,但是,如果在REFERENCES從句中已命名的表刪除記錄會(huì)怎么樣?在使用同樣的值作為外鍵的輔助表中會(huì)發(fā)生什么?

      很明顯,那些記錄也應(yīng)該被刪除,否則在數(shù)據(jù)庫中就會(huì)有很多無意義的孤立記錄,MYSQL可以通過向FOREIGN KEY...REFERENCES修飾符添加一個(gè)ON DELETE 或ON UPDATE子句簡(jiǎn)化任務(wù),它告訴了數(shù)據(jù)庫在這種情況如何處理孤立任務(wù)。

      在MySQL中如何設(shè)置主鍵和外鍵

      工具/原料

      電腦??MySQL

      方法/步驟

      設(shè)置主鍵:

      1、通過終端進(jìn)入到mysql命令行工具。

      2、通過use關(guān)鍵字進(jìn)行到目標(biāo)數(shù)據(jù)庫里。

      3、如原表已有主鍵,先把原來的主鍵刪除掉,通過DROPPRIMARYKEY命令:ALTERTABLE`jingyan`DROPPRIMARYKEY;。

      4、主鍵已經(jīng)沒有了。

      5、通過命令:ADDPRIMARYKEY來添加ALTERTABLE`jingyan`ADDPRIMARYKEY(`id`)。

      6、輸入后按下回車鍵即可看到queryok執(zhí)行成功的字符。

      7、回到數(shù)據(jù)庫的可視化工具,即可顯示現(xiàn)在的表在id列上添加了主鍵了。

      設(shè)置外鍵:

      1、創(chuàng)建好主從表。

      2、選擇主表,點(diǎn)擊設(shè)計(jì)表,進(jìn)入到表設(shè)計(jì)界面。

      3、點(diǎn)擊外鍵,進(jìn)入到外鍵設(shè)置界面。

      4、先設(shè)置外鍵名稱和選擇主表的外鍵字段。

      5、然后在設(shè)置外鍵字段對(duì)應(yīng)從表的數(shù)據(jù)庫、表名和字。

      6、點(diǎn)擊保存就完成外鍵設(shè)置了。

      mysql怎么定義外鍵

      數(shù)據(jù)庫mysql

      建立外鍵的前提:本表的列必須與外鍵類型相同(外鍵必須是外表主鍵)。

      外鍵作用:使兩張表形成關(guān)聯(lián),外鍵只能引用外表中的列的值!

      指定主鍵關(guān)鍵字:foreignkey(列名)

      引用外鍵關(guān)鍵字:references外鍵表名(外鍵列名)

      事件觸發(fā)限制:ondelete和onupdate,可設(shè)參數(shù)cascade(跟隨外鍵改動(dòng)),restrict(限制外表中的外鍵改動(dòng)),setNull(設(shè)空值),setDefault(設(shè)默認(rèn)值),[默認(rèn)]noaction

      例如:

      outTable表主鍵id類型int

      創(chuàng)建含有外鍵的表:

      createtabletemp(

      idint,

      namechar(20),

      foreignkey(id)referencesoutTable(id)ondeletecascadeonupdatecascade);

      說明:把id列設(shè)為外鍵參照外表outTable的id列當(dāng)外鍵的值刪除本表中對(duì)應(yīng)的列篩除當(dāng)外鍵的值改變本表中對(duì)應(yīng)的列值改變。

      自己實(shí)踐才能完全了解外鍵的作用關(guān)鍵是:事件觸發(fā)限制的作用

      mysql添加外鍵的操作要自己輸?

      mysql增加外鍵的方法:1、在CREATE TABLE語句中,通過FOREIGN KEY關(guān)鍵字來添加外鍵;2、在ALTER TABLE語句中,通過ADD和FOREIGN KEY關(guān)鍵字來添加外鍵。

      推薦課程:MySQL教程。

      MySQL 外鍵約束(FOREIGN KEY)是表的一個(gè)特殊字段,經(jīng)常與主鍵約束一起使用。對(duì)于兩個(gè)具有關(guān)聯(lián)關(guān)系的表而言,相關(guān)聯(lián)字段中主鍵所在的表就是主表(父表),外鍵所在的表就是從表(子表)。

      外鍵用來建立主表與從表的關(guān)聯(lián)關(guān)系,為兩個(gè)表的數(shù)據(jù)建立連接,約束兩個(gè)表中數(shù)據(jù)的一致性和完整性。比如,一個(gè)水果攤,只有蘋果、桃子、李子、西瓜等 4 種水果,那么,你來到水果攤要買水果就只能選擇蘋果、桃子、李子和西瓜,其它的水果都是不能購(gòu)買的。

      主表刪除某條記錄時(shí),從表中與之對(duì)應(yīng)的記錄也必須有相應(yīng)的改變。一個(gè)表可以有一個(gè)或多個(gè)外鍵,外鍵可以為空值,若不為空值,則每一個(gè)外鍵的值必須等于主表中主鍵的某個(gè)值。

      定義外鍵時(shí),需要遵守下列規(guī)則:

      主表必須已經(jīng)存在于數(shù)據(jù)庫中,或者是當(dāng)前正在創(chuàng)建的表。如果是后一種情況,則主表與從表是同一個(gè)表,這樣的表稱為自參照表,這種結(jié)構(gòu)稱為自參照完整性。

      必須為主表定義主鍵。

      主鍵不能包含空值,但允許在外鍵中出現(xiàn)空值。也就是說,只要外鍵的每個(gè)非空值出現(xiàn)在指定的主鍵中,這個(gè)外鍵的內(nèi)容就是正確的。

      在主表的表名后面指定列名或列名的組合。這個(gè)列或列的組合必須是主表的主鍵或候選鍵。

      外鍵中列的數(shù)目必須和主表的主鍵中列的數(shù)目相同。

      外鍵中列的數(shù)據(jù)類型必須和主表主鍵中對(duì)應(yīng)列的數(shù)據(jù)類型相同。

      在創(chuàng)建表時(shí)設(shè)置外鍵約束

      在 CREATE TABLE 語句中,通過 FOREIGN KEY 關(guān)鍵字來指定外鍵,具體的語法格式如下:

      1

      2

      [CONSTRAINT 外鍵名] FOREIGN KEY 字段名 [,字段名2,…]

      REFERENCES 主表名 主鍵列1 [,主鍵列2,…]

      例 1

      為了展現(xiàn)表與表之間的外鍵關(guān)系,本例在 test_db 數(shù)據(jù)庫中創(chuàng)建一個(gè)部門表 tb_dept1,表結(jié)構(gòu)如下表所示。

      創(chuàng)建 tb_dept1 的 SQL 語句和運(yùn)行結(jié)果如下所示。

      1

      2

      3

      4

      5

      6

      7

      mysql CREATE TABLE tb_dept1

      - (

      - id INT(11) PRIMARY KEY,

      - name VARCHAR(22) NOT NULL,

      - location VARCHAR(50)

      - );

      Query OK, 0 rows affected (0.37 sec)

      創(chuàng)建數(shù)據(jù)表 tb_emp6,并在表 tb_emp6 上創(chuàng)建外鍵約束,讓它的鍵 deptId 作為外鍵關(guān)聯(lián)到表 tb_dept1 的主鍵 id,SQL 語句和運(yùn)行結(jié)果如下所示。

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      mysql CREATE TABLE tb_emp6

      - (

      - id INT(11) PRIMARY KEY,

      - name VARCHAR(25),

      - deptId INT(11),

      - salary FLOAT,

      - CONSTRAINT fk_emp_dept1

      - FOREIGN KEY(deptId) REFERENCES tb_dept1(id)

      - );

      Query OK, 0 rows affected (0.37 sec)

      mysql DESC tb_emp6;

      +--------+-------------+------+-----+---------+-------+

      | Field? | Type??????? | Null | Key | Default | Extra |

      +--------+-------------+------+-----+---------+-------+

      | id???? | int(11)???? | NO?? | PRI | NULL??? |?????? |

      | name?? | varchar(25) | YES? |???? | NULL??? |?????? |

      | deptId | int(11)???? | YES? | MUL | NULL??? |?????? |

      | salary | float?????? | YES? |???? | NULL??? |?????? |

      +--------+-------------+------+-----+---------+-------+

      4 rows in set (1.33 sec)

      以上語句執(zhí)行成功之后,在表 tb_emp6 上添加了名稱為 fk_emp_dept1 的外鍵約束,外鍵名稱為 deptId,其依賴于表 tb_dept1 的主鍵 id。

      注意:從表的外鍵關(guān)聯(lián)的必須是主表的主鍵,且主鍵和外鍵的數(shù)據(jù)類型必須一致。例如,兩者都是 INT 類型,或者都是 CHAR 類型。如果不滿足這樣的要求,在創(chuàng)建從表時(shí),就會(huì)出現(xiàn)“ERROR 1005(HY000): Can't create table”錯(cuò)誤。

      在修改表時(shí)添加外鍵約束

      外鍵約束也可以在修改表時(shí)添加,但是添加外鍵約束的前提是:從表中外鍵列中的數(shù)據(jù)必須與主表中主鍵列中的數(shù)據(jù)一致或者是沒有數(shù)據(jù)。

      在修改數(shù)據(jù)表時(shí)添加外鍵約束的語法格式如下:

      閱讀剩余部分

      相關(guān)閱讀

      mysql日期如何轉(zhuǎn)字符串

      【mysql數(shù)據(jù)庫】第三章解讀:服務(wù)器性能剖析(上)

      mysql case when的用法是什么

      mysql關(guān)閉后自動(dòng)重啟怎么辦

      mysql精講之二:dml數(shù)據(jù)操作語句

      淺析mysql中concat以及group_concat的使用

      mysql如何來創(chuàng)建表

      mysql怎么清空數(shù)據(jù)表數(shù)據(jù)

      mysql安裝配置jdbc和基礎(chǔ)學(xué)習(xí)

      mysql怎么加入一個(gè)數(shù)據(jù)庫?

      mysql中如何定義外鍵

      創(chuàng)建表的時(shí)候定義:

      create table test1

      (

      a int(2) primary key,

      b char(5)

      c float(3)

      );

      create table test2

      (

      a2 int(2) primary key,

      b2 char(5),

      c3 float(3),

      constraint fk_test1_test2 foreign key(c3) references test1(c)

      );

      如果是創(chuàng)建了表以后要添加外鍵,可以用如下語句:

      alter table test2 add constraint fk_t1_t2 foreign key(b2) references test1(b);


      網(wǎng)頁名稱:mysql怎么聲明外鍵 mysql 定義外鍵
      當(dāng)前URL:http://www.ef60e0e.cn/article/hjscji.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        遵义县| 海晏县| 商丘市| 光泽县| 郓城县| 信丰县| 阳曲县| 永德县| 满洲里市| 江都市| 天等县| 合阳县| 阜康市| 吉水县| 丰城市| 格尔木市| 贵州省| 邻水| 新竹市| 靖远县| 黄冈市| 柘城县| 曲水县| 山西省| 太谷县| 榆树市| 徐水县| 金湖县| 潍坊市| 集贤县| 辉南县| 玉树县| 龙海市| 常熟市| 乌拉特后旗| 台安县| 英吉沙县| 南通市| 乌海市| 东丰县| 巴中市|