三、MySQL建表模板

  1. 建表模板

  SET FOREIGN_KEY_CHECKS=0;
  DROP TABLE IF EXISTS `g_test`;
  CREATE TABLE `g_test` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘ID‘,
    `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘更新时间‘,
    `begin_time` timestamp NULL DEFAULT NULL COMMENT ‘有效期限(开始)‘,
    `end_time` timestamp NULL DEFAULT NULL COMMENT ‘有效期限(结束)‘,
    `title` varchar(200) DEFAULT NULL COMMENT ‘产品标题‘,
    `products_scale` decimal(11,2) DEFAULT ‘0.00‘ COMMENT ‘募集规模‘,
    `min_profit` decimal(11,5) DEFAULT ‘0.00000‘ COMMENT ‘年化收益‘,
       PRIMARY KEY (`id`)
       ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT=‘测试表‘;

  注: (1) AUTO_INCREMENT=n 表示自增长的起始位置为n
         (2) 取消外键约束: SET FOREIGN_KEY_CHECKS=0;Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构。
         解决方法: 在Mysql中取消外键约束:  SET FOREIGN_KEY_CHECKS=0;然后将原来表的数据导出到sql语句,重新创建此表后,再把数据使用sql导入,
         然后再设置外键约束: SET FOREIGN_KEY_CHECKS=1;

时间: 2024-12-21 14:29:20

三、MySQL建表模板的相关文章

Mysql建表与索引使用规范详解

一. MySQL建表,字段需设置为非空,需设置字段默认值. 二. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三. MySQL建表,如果字段等价于外键,应在该字段加索引. 四. MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默认值,需保持一致,否则无法正确使用索引进行关联对比. 五. MySQL使用时,一条SQL语句只能使用一个表的一个索引.所有的字段类型都可以索引,多列索引的属性最多15个. 六. 如果可以在多个索引中进行选择,My

Mysql 建表时,日期时间类型选择

mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示  DATETIME  8 bytes  YYYY-MM-DD HH:MM:SS  1000-01-01 00:00:00 9999-12-31 23:59:59 0000-00-00 00:00:00  TIMESTAMP  4 bytes  YYYY-MM-DD HH:MM:SS  197001010

mysql建表出现Timestamp错误

mysql建表时如果有两个或以上的字段为Timestamp,那么可能会出现如下错误: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE 原因是当你给一个timestamp设置为on updatecurrent_timestamp的时候,其他的timestamp字段需要显式设定default值 但是如果你有两个timest

【记录】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_descr

关于MySQL建表对DML的影响【转】

本文来自这里 今天一位同学问到线上曾经碰到过连续建表,导致阻塞普通的insert.update等.不过也没有保留现场.因此有疑问为什么建表会影响DML? 分析          首先这个现象不是在所有场景都会碰到(否则MySQL的用户们早就跳起来了). 一来建表这个操作本身很快,只涉及到写表定义文件和初始化表空间.中间涉及到redo和undo的操作也很少(这里只讨论InnoDB表).因此除非碰到磁盘IO响应不了,否则多数情况下建表操作很快结束,不会"稳定复现" 二来即使由于io原因,建

mysql建表设置两个默认CURRENT_TIMESTAMP的技巧

转载:http://blog.163.com/user_zhaopeng/blog/static/166022708201252323942430/ 业务场景: 例如用户表,我们需要建一个字段是创建时间, 一个字段是更新时间. 解决办法可以是指定插入时间,也可以使用数据库的默认时间. 在mysql中如果设置两个默认CURRENT_TIMESTAMP,会出现这样的错误. ERROR 1293 (HY000): Incorrect table definition; there can be onl

mysql 建表、查表、查表结构

进入数据库: 1 mysql> use sunshine_blog;输出: 2 Database changed 查数据库表: 1 mysql> show tables;输出: 2 +-------------------------+ 3 | Tables_in_sunshine_blog | 4 +-------------------------+ 5 | test | 6 | user | 7 +-------------------------+ 8 2 rows in set (0

MySQL建表时列名同保留字重复问题解决办法

建表时遇到遇到属性名同MySQL的保留字相同导致不能建表的问题,如下SQL语句: CREATE TABLE TBL_ACCOUNT_FROZEN_RECORD ( ID BIGINT NOT NULL AUTO_INCREMENT, TRADE_FLOW_ID VARCHAR(60) NOT NULL, ACCOUNT_NO VARCHAR(32) NOT NULL, INITIATOR VARCHAR(16) NOT NULL, OPERATE_TYPE VARCHAR(32) NOT NUL

(转)MySQL建表设置两个默认CURRENT_TIMESTAMP的技巧

业务场景: 例如用户表,我们需要建一个字段是创建时间, 一个字段是更新时间. 解决办法可以是指定插入时间,也可以使用数据库的默认时间. 在mysql中如果设置两个默认CURRENT_TIMESTAMP,会出现这样的错误. ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE claus