【记录】Mysql 建表注意事项
博主最近打算搭建商城,由于之前对建表只有很浅显的理解,没有太过深入了解,建表过程中遇到一些问题,现记录如下,
如有问题请各位留言指正,感激不尽:
建表时设置如何设置联合主键?如下标红处:
CREATE TABLE `product_price` (
`product_id` int(12) NOT NULL COMMENT '商品ID',
`price_category_id` int(12) NOT NULL DEFAULT '0' COMMENT '价格类型ID',
`price_describe` varchar(15) DEFAULT NULL COMMENT '价格描述',
`price` decimal(18,3) DEFAULT NULL COMMENT '价格',
`created_by` varchar(20) DEFAULT NULL COMMENT '创建用户',
`created_time` datetime DEFAULT NULL COMMENT '创建时间',
`updated_by` varchar(20) DEFAULT NULL COMMENT '更新用户',
`updated_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`product_id`,`price_category_id`),
KEY `fk_price_category` (`price_category_id`),
CONSTRAINT `fk_price_product` FOREIGN KEY (`product_id`) REFERENCES `product` (`product_id`),
CONSTRAINT `fk_price_category` FOREIGN KEY (`price_category_id`) REFERENCES `product_price_category` (`price_category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='价格表';
如何设置外键?如上标绿处,含义如下:
constraint 外键(形如:FK_从表_主表) foreign key (从表外键字段) references 主表(主键字段);
注意语句中的(`)全部是Esc下面那个键而非单引号!执行语句时是单引号。
参考链接1:https://www.cnblogs.com/xlwh/p/8595141.html
参考链接2:https://blog.csdn.net/xudailong_blog/article/details/84136168
参考链接3:https://www.cnblogs.com/msi-chen/p/10189532.html
参考链接4:https://www.php.cn/mysql-tutorials-375831.html
遇到 ERROR 1005: Can't create table (errno: 150)解决办法
在mysql 中建立引用约束的时候会出现MySQL ERROR 1005: Can’t create table (errno: 150)的错误信息,结果是不能建立引用约束。
出现问题的大致情况
1、外键的引用类型不一样,如主键是int外键是char
2、找不到主表中引用的列
3、引用的字段和外键的字符编码不一致,也可能存储引擎不一样
4、引用的字段和外键的约束不同
参考链接:https://blog.csdn.net/yiluxiangqian7715/article/details/47747613
mysql建表注意事项:
1:如果某字段只有Y/N选项,创建时应用char(1),或者1/0选项用 tinyint(1)
2:尽量少使用langtext类型
3:用varchar时应该 制定具体长度,本来就20个字节,不应该用varchar(250),影响效率
参考链接:https://www.cnblogs.com/zjfjava/p/6920407.html
【记录】Mysql 建表注意事项的更多相关文章
- 三种常用的MySQL建表语句
MySQL建表语句是最基础的SQL语句之一,下面就为您介绍最常用的三种MySQL建表语句,如果您对MySQL建表语句方面感兴趣的话,不妨一看. 1.最简单的: CREATE TABLE t1( ...
- 基于表的数据字典构造MySQL建表语句
表的数据字典格式如下: 如果手动写MySQL建表语句,确认麻烦,还不能保证书写一定正确. 写了个Perl脚本,可快速构造MySQL脚本语句. 脚本如下: #!/usr/bin/perl use str ...
- mysql建表出现Timestamp错误
mysql建表时如果有两个或以上的字段为Timestamp,那么可能会出现如下错误: Incorrect table definition; there can be only one TIMESTA ...
- MySql 建表出现的问题:[ERR] 1064 - You have an error in your SQL syntax; check the manual.......
使用 MySql 建表出现的问题 在使用 Navicat Premium 运行 sql 语句进行建表时,MySQL 报错如下: 建表语句: DROP DATABASE IF EXISTS javawe ...
- MySQL 建表语句 create table 中的列定义
MySQL 建表语句 create table 中的列定义: column_definition: data_type [NOT NULL | NULL] [DEFAULT default_value ...
- 【转载】mysql建表date类型不能设置默认值
如题,mysql建表date类型的不能设置一个默认值,比如我这样: CREATE TABLE `new_table` ( `biryhday` datetime NULL DEFAULT '1996- ...
- Mysql建表通用写法
Mysql建表通用写法 CREATE TABLE IF NOT EXISTS stu( id ) PRIMARY KEY AUTO_INCREMENT,//主键 自增 stuname ) NOT NU ...
- MySQL建表DDL规范(欢迎补充)
MySQL建表DDL规范(欢迎补充) 基本规范: 表名和字段名全大写,一般表名以T开头 脚本需支持可重复执行,带IF NOT EXISTS ,但不可带DROP语句 字符集使用utf8mb4 (CHAR ...
- 关于MySQL建表
规范一些常用字段. password:varchar name:varchar 时间存储全部存储时间戳,用bigint(20),拒绝使用 MySQL数据类型 mysql数据类型 含义 date 3字 ...
随机推荐
- springBoot+mysql+mybatis demo [基本配置] [遇到的问题]
springBoot+mysql+mybatis的基本配置: 多环境 application.properties spring.profiles.active=dev spring.applicat ...
- HTML 地理定位 的实例
<!DOCTYPE html> <html lang="en"> <head> <title>地理定位</title> ...
- 终极解决方案: Invalid character found in the request target.
终极解决方案:(导出可能出现) 我的tomcat版本是8.5.32,导出时遇到以下报错. 报错日志: Invalid character found in the request target. Th ...
- Mac下通过npm安装webpack 、vuejs,以及引入jquery、bootstrap等(初稿)
前言: 初次接触前端开发技术,一些方向都是在同事的指引和自己的探索后,跑了个简易web,迈入全栈系列.由于是事后来的文章,故而暂只是杂记,写的粗略且不清晰,后续将补之. 主要参考文档: http:// ...
- SQL Server 创建表
SQL Server 创建表 我们在上一节中完成了数据库的创建,在本节,我们要往这个新的数据库中加入点数据,要想将数据添加到数据库,我们就必须在数据库中添加一个表,接下来来看看具体的操作. 我们的数据 ...
- uiautomator python版本
摘要: 利用jsonrpc技术直接包装uiautomator,调用uiautomator的api在本地直接编写脚本,然后运行测试case,这样比用Java写,然后再打包,runcase要简单的多,关键 ...
- sql2008质疑处理方法
日常对Sql Server 2005关系数据库进行操作时,有时对数据库(如:Sharepoint网站配置数据库名Sharepoint_Config)进行些不正常操作如数据库在读写时而无故停止数据库,从 ...
- 【HDU6662】Acesrc and Travel【树形DP】
题目大意:给你一棵树,每个节点有一个权值,Alice和Bob进行博弈,起点由Alice确定,确定后交替选择下一个点,Alice目标是最终值尽可能大,Bob目标是尽可能小 题解:很明显是树形DP,那么考 ...
- Python实现BFS,DFS
BFS:队 graph = { "A" : ["B","C"], "B" : ["A"," ...
- window安装nginx
下载安装 到nginx官网上下载相应的安装包,http://nginx.org/en/download.html: 下载进行解压,将解压后的文件放到自己心仪的目录下,我的解压文件放在了d盘根目录下,如 ...