基于Mysql8.0的建表基础

新建产品库mydb6_product,新建3张表如下:
一、employees表
列1:id,整型,主键
列2:name,字符串,最大长度50,不能为空
列3:age,整型
列4:gender,字符串,最大长度10,不能为空,默认值“unknown”
列5:salary,浮点型
二、orders表
列1:id,整型,主键
列2:name,字符串,最大长度100,不能为空
列3:price,浮点型
列4:quantity,整型
列5:category,字符串,最大长度50
三、invoices表
列1:number,整型,主键自增长
列2:order_id,整型,外键关联到orders表的id列
列3:in date:日期型
列4:total_amount:浮点型,要求数据大于0

建立产品库mydb6_product :

命令:create database mydb6_product;

查看建库信息(建立表先进行查看

命令:show database;

注意:建立完库之后直接进入养成好习惯,并查看

1、建立employees表:

命令: create table employees(
    -> id int primary key,
    -> name varchar(50) not null,
    -> gender char(10) not null default "unkonwn",
    -> salary float);

查看表的信息

命令:desc emloyees;

2、建立orders表

命令: create table orders(
    -> id int primary key,
    -> name varchar(100) not null,
    -> price float,
    -> quantity int,

查看表的信息

命令:desc orders;

3、建立 invoices表

命令:create table invoices(
    -> number int auto_increment,
    -> order_id int,
    -> in_date date,
    -> total_amount float check(total_amount>0),
    -> primary key(number)
    -> );

查看表的信息

命令:desc  invoices;

构建外键约束

命令:alter table invoices add constraint invoices_zl foreign key (order_id) references orders (id);

查看表的信息:

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误是由于 MySQL 8.0 默认的行格式导致的。在 MySQL 8.0 中,行格式为 `DYNAMIC`,且每行的最大大小限制为 8126 字节当你尝试创建一个超过该限制的表时,就会出现 "Row size too large" 的错误。 为了解决这个问题,你可以尝试以下方法: 1. 使用 `ROW_FORMAT=DYNAMIC` 或 `ROW_FORMAT=COMPRESSED` 行格式来创建表。这些行格式允许更大的行大小。例如: ```sql CREATE TABLE your_table ( column1 INT, column2 VARCHAR(4000), column3 TEXT, ... ) ROW_FORMAT=DYNAMIC; ``` 或 ```sql CREATE TABLE your_table ( column1 INT, column2 VARCHAR(4000), column3 TEXT, ... ) ROW_FORMAT=COMPRESSED; ``` 2. 将需要存储大量数据的列更改为 `TEXT` 或 `BLOB` 类型。这将使这些列以外部存储的方式进行存储,而不是内联存储在行中。例如,将 `VARCHAR` 类型列改为 `TEXT` 类型: ```sql CREATE TABLE your_table ( column1 INT, column2 TEXT, column3 TEXT, ... ); ``` 请注意,将列更改为 `TEXT` 或 `BLOB` 类型可能会影响查询和索引的性能。 3. 如果以上方法仍然无法解决问题,你可以考虑调整 MySQL 的配置文件,增加 `innodb_log_file_size` 和 `innodb_strict_mode` 的值。请注意,在修改配置文件之前,确保备份了重要的数据和配置文件。 这些方法应该能够帮助你解决 "Row size too large" 错误。如果问题仍然存在,建议根据你的具体需求,合理设计表结构,并确保每行的大小不超过 MySQL 的限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值