创建外键SQL时出错

时间:2014-08-27 16:33:06

标签: sql sql-server foreign-keys foreign-key-relationship

CREATE TABLE Usuario 
( 
    id int identity not null, 
    usuario char(20) unique not null, 
    senha char(10) not null, 
    tipo_usuario char(15) not null, 

    primary key (id),  
    foreign key (tipo_usuario) references TpoUsuario 
       on update cascade on delete set default
);

CREATE TABLE TpoUsuario 
( 
    id int identity not null,  
    tipo_usuario char(15) not null, 
    primary key(id) 
);

这使用代码顶部,并收到此消息错误。

首先我创建了表TpoUsuario,然后创建了表Usuario

  

Ms 1778,Level 16,State 0,Line 1
  列'TpoUsuario.id'与外键'FK__Usuario__tipo_us__60A75C0F'中引用列'Usuario.tipo_usuario'的数据类型不同。

     

Msg 1750,Level 16,State 0,Line 1
  无法创建约束。查看以前的错误。

2 个答案:

答案 0 :(得分:3)

TpoUsuario.id是一个int数据类型列,而Usuario.tipo_usuario是char类型列 你能不能用TpoUsuario.tipo_usuario将Usuario.id和TpoUsuario.id或Usuario.usario联系起来

答案 1 :(得分:0)

了解如何定义外键:

SQL FOREIGN KEY

你说

foreign key  (tipo_usuario)  references TpoUsuario  on update cascade on delete set default

语法为FOREIGN KEY (column col1, column col2, ...) REFERENCES table_name(column col1, column col2,...)