更新时间:2020-12-14 15:16
在使用数据访问代理时,您可以通过 DDL 语句完成建库建表等操作。
创建数据表
CREATE TABLE IF NOT EXISTS `table_name`(
id INTEGER NOT NULL PRIMARY KEY,
name VARCHAR(20) NOT NULL,
age INTEGER NOT NULL
);
删除数据表
DROP TABLE table_name;
修改数据表
/* 修改字段名 */
ALTER TABLE table_name CHANGE name name1 VARCHAR(255);
/* 修改字段类型 */
ALTER TABLE table_name MODIFY name1 VARCHAR(64);
/* 添加字段(默认添加至数据表末尾)*/
ALTER TABLE table_name ADD COLUMN address VARCHAR(20) DEFAULT NULL;
/* 添加主键 */
ALTER TABLE table_name ADD PRIMARY KEY (id);
/* 添加唯一约束 */
ALTER TABLE table_name ADD UNIQUE uni_name1 (name1);
添加索引
/* 创建索引 */
CREATE INDEX idx_addr ON table_name (address);
/* 使用 ALTER TABLE 语句添加索引 */
ALTER TABLE table_name ADD INDEX idx_addr (address);
/* 创建唯一索引 */
CREATE UNIQUE INDEX uni_addr ON table_name (address);
删除索引
/* 删除索引 */
DROP INDEX idx_addr ON table_name;
/* 使用 ALTER TABLE 语句删除索引 */
ALTER TABLE table_name DROP INDEX idx_addr;
当您在数据访问代理中使用 DDL 语句时,请注意以下限制:
数据库访问代理在控制台的任务管理与服务端上均支持了 Sharding DDL 功能,即带有拆分规则的建库建表语句。
新建库:
CREATE DATABASE IF NOT EXISTS my_db -- MYSQL原生
default character set utf8 -- MYSQL原生
[SHARDS 100] -- 扩展:【通用】分库数属性
复用已有库:
CREATE DATABASE tradequery_db EXTENDS trade_db;
当需要创建的表数量较多时,您可以通过下面的 SQL 语句完成逻辑表和物理表的创建,提高建表的效率。
CREATE TABLE [IF NOT EXISTS] `employee` (
id int(11) not null,
user_id varchar(32) not null,
age int(11) not null
)
DBSHARD BY HASH (col)
TBSHARD BY HASH (dol)
SHARDS NUMS
字符串截断:字符串截断是数据访问代理应用最多的拆分规则,可以配合 substr(str,pos,len)
函数一起使用。
CREATE TABLE [IF NOT EXISTS] `employee` (
id int(11) not null,
user_id varchar(32) not null,
age int(11) not null
)
DBSHARD BY HASH (substr(user_id,-4,2))
TBSHARD BY HASH (substr(user_id,-4,2))
SHARDS 100
HASH
CREATE TABLE [IF NOT EXISTS] `employee` (
id int(11) not null,
user_id varchar(32) not null,
age int(11) not null
)
DBSHARD BY HASH (id)
TBSHARD BY HASH (id)
SHARDS 100
TOINT
CREATE TABLE [IF NOT EXISTS] `employee` (
id int(11) not null,
user_id varchar(32) not null,
age int(11) not null
)
DBSHARD BY TOINT(id)
TBSHARD BY TOINT(id)
SHARDS 100
在文档使用中是否遇到以下问题
更多建议
匿名提交