1. 程式人生 > >INSERT 語句與 FOREIGN KEY 約束"XXX"衝突。該衝突發生於資料庫"XXX",表"XXX", column 'XXX。

INSERT 語句與 FOREIGN KEY 約束"XXX"衝突。該衝突發生於資料庫"XXX",表"XXX", column 'XXX。

很多人會遇到上面的問題,我也是:問題由來

1.建立表1

             create table Depts

             (Dno char(5) primary key,

              Dname char(20) not null)

2.建立表2  

   CREATE TABLE Students                      /*列級完整性約束條件*/

    (Sno  CHAR(5) NOT NULL,              /* Sno不能為空值*/

    Sname  CHAR(20) NOT NULL,           /*Sname不能為空值

*/

    Ssex  CHAR(2),

    Sage  INT,

    Sdept  CHAR(15),

    CONSTRAINT FK_Sno foreign key(Dno) references Depts        /* 定義外來鍵約束*/

3.將一個學生元組新增到基本表Students中,SQL語句如下:

                                                                                             insert
                                                                                                into Students
                                                                                                values('S01','王建平','男',21,'D01')

4.點選分析,沒有錯誤,點選執行,就出現INSERT 語句與 FOREIGN KEY 約束"FK_Dno"衝突。該衝突發生於資料庫"XXXX",表"dbo.Depts", column 'Dno'。語句已終止。

解析理論:外來鍵約束,比如B表存在一個欄位b,有外來鍵約束,引用於A表的主鍵a,那麼在向B表插入資料時,欄位b必須為A表中a已經存在的值,如過向b中存放一個a中沒有的值,則會報違反外來鍵約束。

解決方法:只要在Depts表中新增

                                                  insert
                                                    into Depts
                                                      values('D01','自動化')

OK

相關推薦

INSERT 語句 FOREIGN KEY 約束"XXX"衝突衝突發生資料庫"XXX""XXX", column 'XXX

很多人會遇到上面的問題,我也是:問題由來 1.建立表1              create table Depts              (Dno char(5) primary key,               Dname char(20) not null

DELET語句REFERENCE約束“FK_news_category”衝突衝突發生資料庫“newssystem”dbo.news,column 'caId'語句終止

問題           做牛腩新聞釋出系統,當刪除新聞類別表(category)中資料時出現了無法刪除並提示外來鍵衝突的情況。                分析             1

SQL語句刪除具有外來鍵約束foreign key)的因為物件正由一個 FOREIGN KEY 約束引用

關於包含外來鍵的表,清理資料的時候,如truncateTable,網上大部分的解決辦法是,刪除外來鍵-》刪除資料-》再新建表。 這裡介紹一種不需要刪除外來鍵,只需要修改外來鍵屬性就可以刪除資料的方式。 如上圖所示,展開表名,找到外來鍵,雙擊外來鍵,修改Insert和Update規範下面

SQL語句刪除具有外來鍵約束foreign key)的錯誤提醒:無法刪除物件 '名'因為物件正由一個 FOREIGN KEY 約束引用

當我們在刪除一張有外來鍵約束的表時,直接採用drop table A表,會報以下錯誤:        無法刪除物件 'A表',因為該物件正由一個 FOREIGN KEY 約束引用。錯誤原因:A表被其他表的外來鍵引用了解決方法:                1.找出本表的外來

mybatis insert的入參為map時,insert語句中獲取key和value的寫法

1. <insert id="submitAudit"> insert into tablename <foreach collection="params.keys" item="key" open="(" close=")" separator=",">

SQLServer之修改FOREIGN KEY約束

使用SSMS資料庫管理工具修改FOREIGN KEY約束 1、連線資料庫,選擇資料表-》右鍵點選-》選擇設計(或者展開鍵,選擇要修改的外來鍵,右鍵點選,選擇修改,後面修改步驟相同)。 2、在表設計視窗中-》選擇要修改的外來鍵列-》右鍵點選-》選擇關係。 3、

SQLServer中有五種約束Primary Key約束Foreign Key約束、Unique約束、Default約束和Check約束今天使用SQL Server2008來演示下這幾種約束

SQLServer中有五種約束,Primary Key約束、Foreign Key約束、Unique約束、Default約束和Check約束,今天使用SQL Server2008來演示下這幾種約束的建立和使用的方法。 1、Primary Key約束     在表中常有一列或多列的組合,其值能唯一標識表

sql語句修改資料庫列名

--檢視是否有使用者連線到這個資料庫了 select spid from master.dbo.sysprocesses where dbid=db_id('student')  kill 49  --關閉其他使用者對此資料庫的連線(假設連線id為49)  go  ----

執行SQL語句的時候唯一約束欄位異常Duplicate entry '33382-1-0' for key xxx

前言:做專案的時候,執行SQL語句報了Duplicate entry '33382-1-0' for key xxx異常,後來發現是唯一約束導致,於是乎一通谷歌百度,後來解決了,記錄一下。 正文: 程式碼片段是這樣的: session.createSQLQuery("i

:“DELETE 語句 REFERENCE 約束"FK_news_category"衝突

報錯為: System.Data.SqlClient.SqlException:“DELETE 語句與 REFERENCE 約束"FK_news_category"衝突。該衝突發生於資料庫"niunan_sys",表"dbo.news", column ‘caId’。 語句已終止。”

Update語句COLUMN REFERENCE約束'FK_Orders_Customers'衝突,衝突發生資料庫'Northwind','Orders',Column 'CustomerID

可以在建立表的外來鍵時指定   on   Delete   Cascade選項(應該也可以在修改表的約束語法中指定)  如果想在資料庫修改(預設你的資料庫為SQL   Server   2000)  開啟你的企業管理器   --   點Northwind資料庫下的表   --   滑鼠右鍵   右邊的Cu

FOREIGN KEY 外鍵約束; UNIQUE和PRIMARY KEY 主鍵約束、CREATE INDEX建立索引的使用

pan bsp constrain 一個表 int 完整性 有一個 user 刪除 1)foreign key 是個約束,意思是說如果你給A字段設置了外鍵約束,以後你要往A字段插入數據,這個數據一定是要在foreign key 後面跟的那個字段中存在的值。這個的意義就是約束

ON DUPLICATE KEY UPDATE在mysql的INSERT語句中用法

1、如果在INSERT語句後面帶上ON DUPLICATE KEY UPDATE 子句,而要插入的行與表中現有記錄的惟一索引或主鍵中產生重複值,那麼就會發生舊行的更新; 2、如果插入的行資料與現有表中記錄的唯一索引或者主鍵****不重複,則執行新紀錄插入操作。 示例: creat

mysql中新增外來鍵約束失敗(cannot add foreign key constraint)

mysql中新增外來鍵約束遇到一下情況:  cannot add foreign key constraint  出現這個問題一般是開發工作者對外來鍵的使用出現了疏忽,我們先清晰一下外來鍵的使用:  1. 外來鍵欄位不能為該表的主鍵;  2. 外來鍵欄位參考欄

外鍵約束foreign key

記錄 是否 作用 foreign incr 引用 而不是 har 生成 *外鍵 foreign key*     1、概念:如果一個實體的(student)的某個字段,指向(引用)另個實體(class)的主鍵 (class:class_id),就稱為s

【SQL】INSERT INTO SELECT語句SELECT INTO FROM語句

  INSERT INTO SELECT語句與SELECT INTO FROM語句,都是將一個結果集插入到一個表中; #INSERT INTO SELECT語句 1、語法形式: Insert into Table2(field1,field2,…) select value1,value2,

mysql的ON DUPLICATE KEY UPDATE在INSERT語句中的用法

1、如果在INSERT語句後面帶上ON DUPLICATE KEY UPDATE 子句,而要插入的行與表中現有記錄的惟一索引或主鍵中產生重複值,那麼就會發生舊行的更新; 2、如果插入的行資料與現有表中記

SQL約束(主鍵約束 primary key、外來鍵約束 foreign key、唯一約束unique 、CHECK約束)

注意: A.表中有資料不能建立約束 B.檢視下設定後,要點選儲存(只有儲存後在才看的到) c   別忘了,點重新整理,才會出來呀! 1、主鍵約束 primary key 主鍵是每行的唯一識別符號,僅僅通過它就能準確定位到一行,其中主鍵列在整個表中不能有重

【MySQL】淺析“replace into 操作” insert into+ON DUPLICATE KEY UPDATE操作”

對有主鍵和唯一鍵的表進行insert into+ON DUPLICATE KEY UPDATE操作(product)[email protected] [test]> CREATE TABLE `student` (    -> `id` int(10) unsigned NOT NUL

mysql 外來鍵foreign key相關知識及新增刪除外來鍵 sql語句

外來鍵保證資料的完整性和一致性,被參照的表是主表,外來鍵所在欄位的表是子表,依賴於資料庫中已存在的表的主鍵。外來鍵的作用是建立子表與父表的關聯關係,是約束父表和子表, 1.父表和子表儲存引擎一樣且只能為InnoDB,禁止使用臨時表, 2.外來鍵列和參照列必須具有相似的資料型別,其中數字的長度