`
zengshaotao
  • 浏览: 787010 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

增加外键

 
阅读更多

增加外键约束时,假定A参照B,那么B中被参照的列必须是主键,否则语句无法执行

mysql> desc user_info;

ERROR 1146 (42S02): Table 'projectdevlop.user_info' doesn't exist
mysql> show tables;
+-------------------------+
| Tables_in_projectdevlop |
+-------------------------+
| menu_info               |
| role_info               |
| role_menu_info          |
| user_role_info          |
+-------------------------+
4 rows in set (0.00 sec)

mysql> CREATE TABLE USER_INFO(
    ->     id int(8) not null auto_increment,
    ->     userid varchar(8) primary key  NOT NULL,
    ->     username varchar(32),
    ->     userpassword varchar(32),
    ->     userstatus varchar(2)
    -> );
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a ke
mysql> CREATE TABLE USER_INFO(
    ->     id int(8) not null ,
    ->     userid varchar(8) primary key  NOT NULL,
    ->     username varchar(32),
    ->     userpassword varchar(32),
    ->     userstatus varchar(2)
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> desc user_info;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| id           | int(8)      | NO   |     | NULL    |       |
| userid       | varchar(8)  | NO   | PRI | NULL    |       |
| username     | varchar(32) | YES  |     | NULL    |       |
| userpassword | varchar(32) | YES  |     | NULL    |       |
| userstatus   | varchar(2)  | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> alter table user_role_INFO add foreign key user_role_INFO_userid (userid) references USER_INFO(userid);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

分享到:
评论

相关推荐

    Mysql增加外键的方法

    在MySQL数据库中,可以通过特定的语法结构来增加外键,即便在建表时未设置外键也能在之后进行添加。本文详细介绍了在MySQL中增加外键的方法,并提供了使用PHPMyAdmin管理工具和SQL语句来实现外键添加的操作步骤和...

    mysql建立外键

    建立外键的前提:本表的列必须与外键类型相同(外键必须是外表主键)。 外键作用: 使两张表形成关联,外键只能引用外表中的列的值! 指定主键关键字: foreign key(列名) 引用外键关键字: references <外键...

    如何处理数据库中的外键

    6. **性能影响**:外键会增加数据库查询的复杂性,因为它们需要进行额外的检查来维护引用完整性。在大数据量和高并发的系统中,这可能会对性能产生影响。 7. **优化处理**: - 使用索引:对外键字段创建索引可以...

    orcal学习笔记(详细)

    - **增加外键**:外键用于确保数据的一致性和完整性,定义了两个表之间的关系。`FK_NAME` 是外键约束的名称,`KEY_TABLE_NAME` 是参照的主表名。 - **启用/禁用约束**:`ALTER TABLE ... DISABLE/ENABLE ...

    数据主键和外键的错误总结

    这增加了数据维护的复杂度。 - **解决方法**:尽量减少重载的外键情况,通过合理的设计来简化表间关系。 6. **部分外键参考**:外键必须引用整个主键,而不仅仅是其中的一部分。例如,如果一个表的主键由多个字段...

    动态代码生成器.zip

    7.SQL2008增加外键信息,其他数据库后续添加。 ★生成项目后,请选择“包括在项目中”,将生成的文件包含到项目。 ★Builder目录中是代码生成插件源码,动软支持可扩展的代码生成插件,用户可以定制自己...

    Oracle学习笔记大全

    **增加外键** ```sql ALTER TABLE TABLE_NAME ADD CONSTRAINT FK_NAME FOREIGN KEY (TABLE_COLUMN) REFERENCES KEY_TABLE_NAME; ``` 其中`FK_NAME`为新增的外键约束名称,`TABLE_COLUMN`为参与外键约束的列名,`...

    liquibase API 帮助文档

    通过使用 `update` 参数,可以方便地管理数据库中的各种对象,例如添加字段、设置默认值、增加外键等。 1. **增加字段** ```sql ALTER TABLE t_zhang ADD address VARCHAR(255) NULL; ``` 对应的 changelog.xml...

    详细oracle笔记1

    2. **增加外键**: 外键用于建立两个表之间的关联,确保数据的参照完整性。添加外键约束的语法如下: ```sql ALTER TABLE table_name ADD CONSTRAINT fk_name FOREIGN KEY (table_column) REFERENCES key_table...

    mysql入门的基础

    - 增加外键:`ALTER TABLE book ADD CONSTRAINT FK_BOOK FOREIGN KEY (pubid) REFERENCES pub_com(id) ON DELETE RESTRICT ON UPDATE RESTRICT;` - 删除外键:`ALTER TABLE 表名 DROP FOREIGN KEY 外键名;` #### ...

    数据库实验四

    - **增加外键约束**:使用`ALTER TABLE`命令在C表中增加一个外键约束`cpno`,引用C表的`cno`字段。 - **删除默认值约束**:使用`ALTER TABLE`命令删除SC表中的默认值约束`DF_SC_score`。 ##### (三) 建立关系图 - *...

    oracle学习笔记

    2. 增加外键:`ALTER TABLE TABLE_NAME ADD CONSTRAINT FK_NAME FOREIGN KEY (TABLE_COLUMN) REFERENCES KEY_TABLE_NAME` 这将建立一个引用完整性约束,使得一个表的列依赖于另一个表的列。 3. 约束的启用与禁用:`...

    .docx

    - **增加外键约束**:使用`ADD CONSTRAINT`加`FOREIGN KEY`来创建外键,如`ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES addresses(address) MATCH FULL;` - **增加多字段...

    MySql外键设置详解

    二是能够增加 ER 图的可读性。 有些人认为外键的建立会给开发时操作数据库带来很大的麻烦,因为数据库有时候会由于没有通过外键的检测而使得开发人员删除、插入操作失败。他们觉得这样很麻烦。其实,这正是外键在...

    sqlserver 2005 主外键-复合主键

    在SQL Server 2005中,主键与外键是数据库设计中非常重要的概念,它们主要用于确保数据的完整性和一致性。特别是在复杂的数据关系管理中,复合主键的应用更是能够帮助我们有效地处理多对多的关系或者是更为复杂的...

Global site tag (gtag.js) - Google Analytics