CREATE DATABASE test /*!40100 DEFAULT CHARACTER SET utf8mb4 */ 是什么意思?
时间: 2023-02-16 13:28:57 浏览: 96
"CREATE DATABASE test /*!40100 DEFAULT CHARACTER SET utf8mb4 */" 意思是创建一个名为 "test" 的数据库,并将其默认字符集设置为 "utf8mb4"。
相关问题
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ADD DATAFILE 'C:\\Test\\SupermarketDB.ibd' ENGINE=InnoDB DEFAULT CHARSET=utf8m' at line 2
抱歉,之前的代码有误,MySQL 不支持使用 `ADD DATAFILE` 语句来添加数据文件。正确的创建数据库及数据文件的代码如下:
```
CREATE DATABASE SupermarketDB
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_general_ci;
USE SupermarketDB;
CREATE TABLE products (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
price DECIMAL(10,2) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
SET GLOBAL innodb_file_per_table = 1;
ALTER TABLE products
ROW_FORMAT=DYNAMIC;
```
这段代码将创建数据库 SupermarketDB,并在其中创建一个名为 products 的表格,表格的列分别为 id、name 和 price。此外,代码中还将设置 InnoDB 引擎的参数 `innodb_file_per_table` 为 1,这表示每个 InnoDB 表格都将拥有自己的独立数据文件。最后,通过 `ALTER TABLE` 语句设置表格的行格式为 DYNAMIC。
请注意,执行此代码前需要保证 MySQL 服务器已经安装在本地计算机上,并且已经启动。此外,还需要在 C 盘下手动创建 C:\Test 目录,否则执行代码时会报错。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GO create database SupermarketDB on ( name='SupermarketDB', fileName='C:\Te' at line 2
抱歉,之前给出的代码是针对 MS SQL Server 的 T-SQL 语法,而不是 MySQL 的 SQL 语法。下面是使用 MySQL 的 SQL 语法来创建名为 SupermarketDB 的数据库,并在 C:\Test 目录下创建对应的数据文件和日志文件的代码:
```
CREATE DATABASE SupermarketDB
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_general_ci;
USE SupermarketDB;
CREATE TABLE products (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
price DECIMAL(10,2) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
SET GLOBAL innodb_file_format = Barracuda;
SET GLOBAL innodb_file_per_table = 1;
SET GLOBAL innodb_large_prefix = 1;
ALTER DATABASE SupermarketDB
ADD DATAFILE 'C:\\Test\\SupermarketDB.ibd'
ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_general_ci;
ALTER TABLE products
ADD CONSTRAINT PK_products PRIMARY KEY (id)
USING BTREE
ROW_FORMAT=DYNAMIC
KEY_BLOCK_SIZE=16;
ALTER TABLE products
ADD INDEX idx_name (name)
USING BTREE
ROW_FORMAT=DYNAMIC
KEY_BLOCK_SIZE=16;
ALTER TABLE products
ADD INDEX idx_price (price)
USING BTREE
ROW_FORMAT=DYNAMIC
KEY_BLOCK_SIZE=16;
```
请注意,执行此代码前需要保证 MySQL 服务器已经安装在本地计算机上,并且已经启动。此外,还需要在 C 盘下手动创建 C:\Test 目录,否则执行代码时会报错。
阅读全文