消息547,级别16,状态0,行1 INSERT语句与FOREIGN KEY约束冲突

时间:2011-10-02 22:58:17

标签: sql

嘿大家我的SQL数据库一直有问题,特别是外键。这是我要进入的表格。

CREATE TABLE Employee (
    EmployeeID int NOT NULL Primary Key,
    LastName varchar(30) NOT NULL,
    FirstName varchar(30) NOT NULL,
    Address varchar(30) NOT NULL,
    City varchar(20) NOT NULL,
    State char(2) NOT NULL,
    TelephoneAreacode char(5) NOT NULL,
    TelephoneNumber char(8) NOT NULL,
    JobTitle varchar(30) NOT NULL    Foreign Key References Job_Title(JobTitle),
    EEO1Classification varchar(30) NOT NULL,
    HireDate char (10) NOT NULL,
    Salary money NOT NULL,
    Gender varchar(7) NOT NULL,
    Age int NOT NULL
)

和数据

INSERT INTO Employee
VALUES ('95687', 'Edelman', 'Glenn', '175 Bishops Lane', 'LA Jolla', 'CA', '619', '5550199','Cashier',  'Sales Workers', '10/7/2003', '$21,500', 'Male', '64'),
    ('95688', 'McMullen', 'Eric', '763 Church ST', 'Lemm Grove', 'CA', '619', '5550135','Bagger',  'Sales Workers', '11/1/2002', '$12,500', 'Male', '20'),
    ('95995', 'Slentz', 'Raj', '123 Torrey DR', 'North Clairmont', 'CA', '619', '5550123','Assistant Manager',  'Officials & Managers', '6/1/2000', '$48,000', 'Male', '34'),
    ('55978', 'Broun', 'Erin', '2045 Parkway - Apt2B', 'Encinitas', 'CA', '760', '5550100', 'Bagger','Sales Workers', '3/12/2003', '$10,530', 'Female', '24'),
    ('55928', 'Carpenter', 'Donald', '927 Second St', 'Encinitas', 'CA', '760','5550154', 'Stocker','Office/Clerical', '11/1/2003', '$15,000', 'Male', '18'),
    ('59852', 'Esquivez', 'David', '10983 N. Coast Hwy Apt 902', 'Encinitas', 'CA', '760', '5550108','Butchers & Seafood Specialists',  'Operatives (Semi skilled)', '8/1/2003', '$19,000', 'Male', '22'),
    ('52362', 'Sharp', 'Nancy', '10793 Montecino RD', 'Ramona', 'CA', '858', '5550135', 'Cashier','Sales Workers', '7/12/2003', '$21,000', 'Female', '24');

带有外键的表就是这个,

CREATE TABLE Job_Title (
    JobTitle varchar(30) NOT NULL Primary key,
    EEO1Classification varchar(30) NOT NULL,
    JobDescription varchar(100) NOT NULL,
    ExemptNonExempt varchar(30) NOT NULL,
)

已经输入的数据是

INSERT INTO Job_Title
VALUES 
     ('Accounting Clerk','Office/Clerical', 'Records Data', 'Non-Exempt'),
     ('Assistant Manager','Officials & Managers', 'Supervises and coordinates activities', 'Exempt'),
     ('Bagger','Sales Workers', 'Places customer orders in bags', 'Non-Exempt'),
     ('Cashier','Sales Workers', 'Operates cash register to itemize and total customer’s purchases', 'Non-Exempt'),
     ('Computer Support Specialist','Technician', 'Installs, modifies, and makes minor repairs to personal computers', 'Non-Exempt'),
     ('Dir. of Fin. & Acct.','Officials & Managers', 'Plans and directs the finance and accounting activities', 'Exempt'),
     ('Asst. - Bakery & Pastry','Craft Workers (Skilled)', 'Bakes Cakes and Pastries',  'Non-Exempt'),
     ('Butchers & Seafood Specialists','Operatives (Semi skilled)', 'Cuts Meat and seafood',  'Non-Exempt'),
     ('Stocker','Office/Clerical',  'Stocks Shelves',  'Non-Exempt'); 

请帮忙。

2 个答案:

答案 0 :(得分:0)

确保您在包含外键(子表)的表中插入的值在包含主键的表中具有相应的值(父表) 我,你不能在子表中插入一些因父pk -Fk关系而没有相应值的子表

答案 1 :(得分:-1)

有时会发生错误,原因是Child表没有父表中已经作为外键引用的相应值。要这样做:

  1. 截断两个表(确保备份数据) 笨重的)可以简单地解决问题。

  2. 尝试在Child表中输入已存在的值 父表的列。希望这会有所帮助。