MySQL创建表-以及建表语句的一些坑

MySQL创建表-以及建表语句的一些坑

建表语句其实比较简单,但是平时都习惯用Navicat建表,我以为我写脚本也没什么问题,但是真的写的时候发现了很多被忽略的细节。
下面盘点下:

先上正确示例(我这里没有外键,主键和自增):

CREATE table assets_alibaba(
`user_id` int UNSIGNED not null,
yue DECIMAL(10,2) not null DEFAULT 0.00,
yuebao DECIMAL(10,2) not null  DEFAULT 0.00,
licai DECIMAL(10,2) not null DEFAULT 0.00,
jijin DECIMAL(10,2) not null DEFAULT 0.00,
huangjin DECIMAL(10,2) not null DEFAULT 0.00,
yulibao DECIMAL(10,2) not null DEFAULT 0.00,
updatetime TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP
);

坑1: 表名字或字段名字不是用的’’,而是`` 。当然你也可以什么都不要

## 正确的
`user_id` int UNSIGNED not null,
## 错误的
'user_id' int UNSIGNED not null,

那个符号是,英文标点的 ` 就是exc键下面的那个东西。不是引号

坑2:每个条语句后面的是英文逗号 , 不是分号;。最后一条语句不需要

坑3: 建表语句用的是小括号{} 不是大括号(这个犯错的应该少)

坑5:建表语句最后面的小括号需要分号结束

坑5:default后面的默认值和前面指定的类型相同

新增修改表和主键操作

create table useraccount(
id TINYINT UNSIGNED auto_increment,
useraccount VARCHAR(15) not null,
chinesename VARCHAR(10) not null,
password CHAR(15) not null,
isdeleted TINYINT not null DEFAULT 0,
modifydate TIMESTAMP not null,
PRIMARY KEY(id)
);

alter table useraccount change modifydate modifydate TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP;

猜你喜欢

转载自blog.csdn.net/m0_37628958/article/details/105884155