hhdb数据库介绍(9-14)

devtools/2024/11/17 0:18:42/

SQL语法支持

DML语句

在关系集群数据库中,DML语句的逻辑将变的更为复杂。计算节点将DML语句分为两大类:单库DML语句与跨库DML语句。

单库DML语句,指SQL语句只需在一个节点上运行,即可计算出正确结果。假设分片表customer分片字段为provinceid,则下列语句为单库SELECT,因为该条语句只会在provinceid=1所路由的那个节点上运行:

SELECT * FROM customer WHERE provinceid=1;

跨库DML语句,指SQL语句需要多个数据节点的数据,经过计算节点的二次处理,才能整合计算出最终的结果。假设分片表customer分片字段为provinceid,则下面的SELECT语句为跨库语句,因为 id>10的数据可能分布在多个节点,为了整合并排序得出最终结果,需要获取多个节点的数据:

SELECT * FROM customer WHERE id>10 ORDER BY id;

显然,单库的SQL语句要比跨库的SQL语句性能高。在使用计算节点的时候,尽量使用单库的DML语句。

上面的例子,描述的仅仅是简单单表的SELECT单库与跨库查询。那么在JOIN中,需要多个数据节点的数据时,称之为跨库JOIN;只需要单个数据节点的数据时,称之为单库JOIN。

对于子查询语句,需要查询多个数据节点的数据时,称之为跨库子查询;只需要单个数据节点的数据时,称之为单库子查询。

计算节点对单库JOIN的查询支持功能,与单库SELECT语句支持功能一样。

DELETE语句

存储节点5.6.2开始,DELETE语句支持删除指定分区(partition)中的数据。如有表名称t与分区名称p0,下面语句将删除分区p0所有的数据:

DELETE FROM t PARTITION(p0);
单库的DELETE语句
存储节点语句类型子句类型功能支持状态说明
DELETEPARTITION支持
ORDER BY支持
LIMIT支持
WHEREdnid支持在where条件中指定分片节点
函数支持
多表DELETE支持
view限制支持支持了仅查询字段的单表视图的delete操作
跨库的DELETE语句
存储节点语句类型子句类型功能支持状态说明
DELETEPARTITION支持
ORDER BY DESCASC支持
LIMIT支持
ORDER BY … LIMIT …支持父子表不支持
ORDER BY字段值大小写敏感支持
WHEREWHERE中的函数支持
JOIN支持含临时表场景不支持

INSERT语句

单库INSERT语句
存储节点语句类型子句类型功能支持状态说明
INSERTINSERT … SELECT …支持
IGNORE支持
PARTITION支持
ON DUPLICATE KEY UPDATE支持
INSERT INTO table_name(columns… ) VALUES(values…)支持
INSERT INTO … VALUES()支持
INSERT INTO … SET支持
分片表无拆分字段值不支持
分片表拆分字段值为NULL支持需要在分片函数参数中配置NULL值参数
子表无关联字段值不支持子表数据的INSERT操作必须满足外键条件
子表关联字段值为NULL不支持子表数据的INSERT操作必须满足外键条件
INSERT BATCH分片表支持
全局表支持
子表条件限制父表的关联字段不是分片字段时不支持。

INSERT IGNORE
在计算节点上,当出现主键/唯一键冲突时,将忽略数据与冲突信息。

mysql> create table test(id int not null primary key,provinceid int)engine=innodb;
Query OK, 0 rows affected (0.02 sec)
mysql> insert into test set id = 1,provinceid=2;
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+----+------------+
| id | provinceid |
+----+------------+
| 1  | 2          |
+----+------------+
1 row in set (0.00 sec)
mysql> insert ignore into test set id = 1,provinceid=2; --主键id为1的记录已经存在,数据被忽略。
Query OK, 0 rows affected (0.00 sec)

对分片表INSERT IGORE语句的操作,若INSERT语句中,没有给出分片字段与分片字段值,计算节点将根据是否开启全局唯一约束判断是否忽略SQL语句。

例如 test 表为分片表,id 为分片字段

mysql> CREATE TABLE `test2` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`name` varchar(20) DEFAULT NULL,UNIQUE KEY `id` (`id`),UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB;mysql> insert ignore into test2(name) values ('e');
mysql> insert ignore into test2(name) values ('e');

当关闭表全局唯一约束时,插入第2条时,如果id 列1、2 值路由到同一个节点,则第2条SQL 会忽略,若不是同一节点,则第2条会插入成功。

当开启表全局唯一约束时,插入第2条时,如果id 列1、2 值路由到同一个节点,则第2条SQL 会忽略,若不是同一节点,则第2条SQL也会忽略。

INSERT 无分片字段
若INSERT 从句中没有指定分片字段的值时:

若分片字段有default 默认值,默认按照default值路由;

若分片字段没有default 默认值,会填充null , 若null值配置了路由规则即可插入;未配置路由规则则不允许插入(例如range match 这类需要单独配置null 分片规则;auto_crc32 这类,根据null自动路由)。

跨库INSERT语句

在关系集群数据库中,INSERT语句只有在INSERT… SELECT与INSERT BATCH两种情况下,才会产生跨库INSERT语句。

INSERT BATCH指的是单条INSERT语句,写入多行记录的方式:

INSERT INTO ... table_name VALUES(),VALUES(),VALUES();
存储节点语句类型子句类型功能支持状态说明
INSERTINSERT … SELECT …支持
INSERT BATCH子表支持父表的JOIN字段不是分片字段时不支持。
全局表支持
分片表支持

批量INSERT (INSERT BATCH)的情况特殊说明:

事务中的批量INSERT,部分成功部分失败,会自动回滚至上一个SAVEPOINT。

LOAD DATA语句

存储节点语句类型子句类型功能支持状态说明
LOAD DATALOAD DATA ... INFILE ... INTO TABLE支持1. 要求执行语句的计算节点数据库用户拥有FILE权限
2. 当计算节点为集群模式时,无论在集群中哪台服务器上执行此语法,导入文件都必须上传至当前主计算节点服务器上的固定路径:/usr/local/hhdb/hhdb-server/HotDB-TEMP
LOW_PRIORITY不支持
CONCURRENT不支持
LOCAL不支持
REPLACE支持
IGNORE支持
PARTITION不支持
CHARACTER SET不支持
{FIELDS | COLUMNS} [TERMINATED BY ‘string’] [[OPTIONALLY] ENCLOSED BY ‘char’] [ESCAPED BY ‘char’]支持
LINES STARTING BY ‘string’不支持
LINES TERMINATED BY ‘string’支持
导入指定字段支持
SET支持
IGNORE number {LINES | ROWS}支持

REPLACE语句

单库REPLACE语句
存储节点语句类型子句类型功能支持状态说明
REPALCEREPLACE ... SELECT ...单库简单单表查询支持
单库JOIN支持
单库子查询支持
单库UNION/UNION ALL支持
PARTITION支持
ON DUPLICATE KEY UPDATE支持
REPLACE INTO table_name(columns... ) VALUES(values...)支持
REPALCE INTO ... VALUES()支持
REPLACE INTO ... SET支持
分片表无拆分字段值不支持
分片表拆分字段值为NULL支持需要在分片函数参数中配置NULL值参数
子表无关联字段值不支持子表数据的INSERT操作必须满足外键条件
子表关联字段值为NULL不支持子表数据的INSERT操作必须满足外键条件
REPLACE BATCH分片表支持
全局表支持
跨库REPLACE语句

在关系集群数据库中,REPLACE语句只有在REPLACE … SELECT与REPLACE BATCH两种情况下,才会产生跨库REPLACE语句。

REPLACE BATCH指的是单条REPLACE语句,写入多行记录的方式:

REPLACE INTO ... table_name VALUES(),VALUES(),VALUES();
存储节点语句类型子句类型功能支持状态说明
REPLACEREPLACE ... SELECT ...跨库简单单表查询支持
跨库JOIN不支持
跨库UNION不支持
REPLACE BATCH子表支持父表的JOIN字段不是分片字段时不支持。
全局表支持
分片表支持

SELECT语句

单库SELECT语句
存储节点语句类型子句类型功能支持状态说明
SELECTJOINLEFT JOIN支持
INNER JOIN支持
RIGHT JOIN支持
CROSS JOIN支持
普通JOIN(无JOIN关键字的多表查询)支持
PARTITION分区表支持
单种表类型的混合JOIN支持
多表类型的混合JOIN支持
子查询JOIN支持
IFNULL/NULLIF支持
UNION/UNION ALL支持
IS NULL/IS NOT NULL支持
PARTITION分区表支持
Select from where表达式支持
Select select表达式支持
SELECT FROM SELECT表达式支持
UNION/UNION ALL简单单表查询支持
JOIN支持
子查询支持同子查询的支持语法相同
Having聚合函数支持
PARTITION分区表支持
DISTINCTROW支持
DISTINCT支持
STRAIGHT_JOIN支持
SQL_NO_CACHE支持
PARTITION支持
WHEREdnid支持1. SET show_dnid=1之后,不支持WHERE 条件带dnid
2. dnid与其他条件用or关联,仅取dnid条
3. 不支持SELECT子句中跟dnid表达式,例如:SELECT dnid=4 FROM dml_a_jwy
函数支持请参考函数说明
GROUP BY ASCDESC WITH ROLLUP支持
HAVING支持
ORDER BY ASCDESC支持
LIMIT n,m支持
PROCEDURE限制支持支持单库存储过程
INTO OUTFILE支持1. 要求执行语句的计算节点数据库用户拥有FILE权限
2. 无论在哪台服务器上执行此语法,输出文件都将保存在当前主计算节点服务器上的固定路径:/usr/local/hhdb/hhdb-server/HDB-TEMP
3. 若输出时集群发生切换,仍能保证数据输出正常
INTO DUMPFILE不支持
INTO 变量不支持
FOR UPDATE支持不支持与NOWAIT或SKIP LOCKED连用
LOCK IN SHARE MODE支持与存储节点8.0的FOR SHARE功能相同,为保证向下兼容,仍保留支持
FOR SHARE支持支持在存储节点8.0及以上存储节点使用,不支持与NOWAIT或SKIP LOCKED连用
函数包括聚合函数支持支持单表聚合函数括号外的复杂运算
DUAL支持
FORCE INDEX支持
USING INDEX支持
IGNORE INDEX支持
RECURSIVE支持存储节点8.0版本下,垂直表和全局表支。支持的语法如下:WITH … SELECT …;WITH … UPDATE …(外部sql的语句仅支持垂直表);WITH … DELETE …(外部sql的语句仅支持垂直表);SELECT … WHERE id IN (WITH … SELECT …) …;SELECT * FROM (WITH … SELECT …) AS dt …
跨库SELECT语句
存储节点语句类型子句类型功能状态说明
SELECTLIMIT n,m支持
ORDER BY支持
ORDER BY LIMIT n,m支持
GROUP BY ASC DESC WITH ROLLUP支持
GROUP BY ORDER BY LIMIT m,n支持
GROUP BY/ORDER BY字段值大小写敏感支持
聚合函数SELECT子句中的聚合函数支持
HAVING子句中的聚合函数支持
COUNT(DISTINCT)支持
FETCH ROWS支持
FOR UPDATE WAIT支持
DISTINCT支持
ROWNUM限制支持ROWNUM仅支持以下几种用法:
1.位于SELECT字段中,仅支持单独使用,例如SELECT ROWNUM [as xx] ,xx from table xx,用以对结果各行生成序列号,不允许ROWNUM出现在函数内部,同时不支持ROWNUM和*同时使用
2.位于WHERE字段中,仅支持位于WHERE条件最外层,并且是一个’AND’条件的分支, 用以对结果进行数量限制,仅支持“ROWNUM 比较操作符 长整型数 值”同时在一个select子句中仅允许出现一次
INTO不支持
WHERE函数支持
PARTITION支持
HAVING支持
PROCEDURE限制支持支持单库存储过程
INTO OUTFILE支持1. 要求执行语句的计算节点数据库用户拥有FILE权限。
2. 当计算节点为集群模式时,无论在集群中哪台服务器上执行此语法,输出文件都将保存在当前主计算节点服务器上的固定路径:/usr/local/hhdb/hhdb-server/HotDB-TEMP
3. 若输出时集群发生切换,仍能保证数据输出正常。
INTO DUMPFILE不支持
INTO 变量不支持
FOR UPDATE支持
LOCK IN SHARE MODE支持
FORCE INDEX支持
USING INDEX支持
IGNORE INDEX支持
STRAIGHT_JOIN支持
OIN限制支持请参考跨库JOIN;
子查询JOIN支持
IFNULL/NULLIF支持
UNION/UNION ALL支持
IS NULL /IS NOT NULL支持
PARTITION分区表支持
AVG/SUM/MIN/MAX函数支持
横向派生表不支持存储节点8.0新功能
UNION/UNION ALLjoin支持

UPDATE语句

单库UPDATE语句
存储节点语句类型子句类型功能支持状态说明
UPDATELOW_PRIORITY支持
IGNORE支持
ORDER BY支持
LIMIT n支持
SET支持1.允许更新分片字段,但要求分片字段值的变更不会影响数据路由,即修改后的分片字段值与修改前的值路由到相同节点,否则执行不成功
2.父子表不允许使用表达式语法更新父子表的关联字段,即使分片字段值的变更不会影响数据路由,例如SET id=id或SET id=id+3
3.不支持一条语句多次更新分片字段,例如:UPDATE table1 SET id =31,id=41 WHERE id =1;
WHEREdnid支持DML WHERE条件里dnid作为OR条件时,仅判断dnid条件,其他限制条件忽略
函数支持
函数支持
多表关联支持
View限制支持支持了仅查询字段的单表视图的update操作
跨库UPDATE语句
存储节点语句类型子句类型功能支持状态说明
UPDATEORDER BY DESCASC支持
LIMIT n支持
ORDER BY DESCASC LIMIT n,m支持
ORDER BY字段值大小写敏感支持
WHERE支持
SET支持1.允许更新分片字段,但要求分片字段值的变更不会影响数据路由,即修改后的分片字段值与修改前的值路由到相同节点,否则执行不成功
2.父子表不允许使用表达式语法更新父子表关联字段,即使关联字段值的变更不会影响数据路由,例如SET id=id或SET id=id+3
3. 不支持一条语句多次更新分片字段,例如:UPDATE table1 SET id =31,id=41 WHERE id =1;
子句中的函数支持
WHERE中的函数支持
PARTITION支持
JOIN支持

跨库JOIN

一级功能二级功能三级功能支持状态说明
INNER/LEFT JONUNION ALL支持
UNION支持
HAVING无条件字段不支持SELECT子句必须包含HAVING过滤字段
COUNT(*)支持
AVG()支持
MAX()支持
MIN()支持
SUM()支持
别名支持
ORDER BY单字段支持
多字段相同顺序支持order by column_name1 desc, column_name2 desc
多字段不同顺序支持order by column_name1 desc, column_name2 asc
字段别名支持别名不能与表中的字段名称相同
字段值大小写敏感支持
ENUM类型支持
函数支持
OR支持
WHERE不同字段的OR条件支持
单个字段的or条件支持
不支持的部分使用NDB且满足NDB限制的支持
IN支持
AND支持
IS NOT NULL支持
IS NULL支持
BETWEEN … AND …支持
>、>= 、< 、<=支持
NOW()等常量表达式支持column1 > NOW() 或 column1 > DATE_ADD(NOW(), INTERVAL +3 day )
运算表达式支持
LIKE支持
GROUP BY单字段支持
多字段支持
ORDER BY NULL支持
WITH ROLLUP支持
字段别名支持别名不能与表名中的字段名称相同
字段值大小写支持
FORCE INDEX支持
USING INDEX支持
IGNORE INDEX支持
AVGAVG()支持
AVG(IFNULL())支持
AVG(column1-column2)支持
COUNTCOUNT()支持
COUNT DISTINCT支持
COUNT(*)支持
COUNT(1)支持
MINMIN()支持
MAXMAX()支持
SUMSUM()支持
SUM(CASE … WHEN…)支持
SUM(IFNULL())支持
SUM(column1-column2)支持
INTO OUTFILE支持1. 要求执行语句的计算节点数据库用户拥有FILE权限
2. 无论在集群中哪台服务器上执行此语法,输出文件都将保存在当前主计算节点服务器上的固定路径:/usr/local/hhdb/hhdb-server/HotDB-TEMP
3. 若输出时集群发生切换,仍能保证数据输出正常
FOR UPDATE不支持
LOCK IN SHARE MODE不支持
子查询支持
表别名支持支持使用表别名WHERE a.column或者SELECT a.column
ON子句单个=支持
<=>支持
!= <>支持
>= > <= <支持
多个>= > <= <条件支持
多个 and = 条件支持
IN支持
IS NOT NULL支持
IS NULL支持
BETWEEN … AND …支持
LIKE支持
or条件支持
数学表达式支持
SELECT子句显示空列支持SELECT ‘’ AS A FROM … 查询结果中能正确显示空列
STRAIGHT_JOIN支持
函数UNIX_TIMESTAMP()支持
NOW()支持
DATE_FORMAT()支持
DATE_ADD()支持
DATEDIFF()支持
FROM_UNIXTIME()支持
CONVERT支持
SUBSTRING_INDEX()支持
SUBSTRING()支持
TRIM()支持
RTRIM()支持
LTRIM()支持
UCASE()支持
UPPER()支持
FLOOR()支持
% 或 MOD支持
RAND()支持
TRUNCATE()支持
/ 或 DIV支持
ABS()支持
LENGTH()支持
CONCAT()支持
CAST()支持
IF()支持
IFNULL支持
CASE…WHEN…END支持
DISTINCT支持
USING(column)支持
PARTITION支持
LIMITLIMIT n,m支持
LIMIT n支持
多表(三表及以上)查询单种LEFT JOIN支持
单种INNER JION支持
单种NATURAL JOIN支持
混合的LEFT/INNER JOIN/RIGHT JOIN支持
混合的LEFT/INNER/NATURAL JOIN支持
TABLE a … JOIN (TABLE b,TABLE c) …支持
NATURAL JOIN支持
不同节点的表JOIN支持
JOINUPDATE … JOIN支持
DELETE … JOIN支持

DDL语句

ALTER语句

存储节点语句类型子句类型支持状态说明
ALTER TABLEADD COLUMN支持
ADD PRIMARY KEY/UNIQUE/FOREIGN KEY/FULLTEXT/INDEX/KEY支持支持ADD UNIQUE [index_name][index_type]index_col_name
父子表的ADD FOREIGN KEY限制支持非分片字段作为外键关联字段时,无法跨节点保证父子表数据关联性。
即在存储节点中,若父表与子表的外键值相等,则可匹配后插入数据,当非分片字段作为外键关联字段时,由于子表外键关联字段路由的节点与父表分片字段的路由节点不一致,导致子表最终路由的存储节点中找不到父表所对应的外键值,故插入失败:ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails
ADD SPATIAL [INDEXKEY]支持
ADD CONSTRAINT [CONSTRAINT [symbol]] PRIMARY KEY/UNIQUE KEY/FOREIGN KEY支持
父子表的ADD CONSTRAINT [CONSTRAINT [symbol]] FOREIGN KEY限制支持非字段作为外键关联字段时,无法跨节点保证父子表数据关联性。即在存储节点中,若父表与子表的外键值相等,则可匹配后插入数据,但当非关联字段作为外键关联字段时,由于子表外键关联字段路由的节点与父表分片字段的路由节点不一致,导致子表最终路由的存储节点中找不到父表所对应的外键值,故插入失败:ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails
ALGORITHM支持存储节点8.0新增INSTANT,且默认使用INSTANT
ALTER COLUMN支持
LOCK支持
MODIFY/CHANGE [COLUMN]支持
DROP COLUMN支持
DROP PRIMARY KEY/KEY/INDEX/FOREIGN KEY支持
DISABLE KEYS支持
ENABLE KEYS支持
DISCARD TABLESPACE不支持
IMPORT TABLESPACE不支持
ADD/DROP/TRUNCATE PARTITION支持
GENERATED COLUMNS支持存储节点8.0与5.7新增功能
SECONDARY INDEXES支持存储节点8.0与5.7新增功能
CHECK支持存储节点8.0新增功能
ALTERVIEW支持
ALTEREVENT限制支持
ALTERUSER支持

CREATE语句

存储节点语句类型子句类型支持状态说明
CREATE DATABASE支持可支持直接创建逻辑库,功能使用说明可见表格下方补充描述。
CREATE EVENT限制支持垂直库场景下支持;不支持跨逻辑库的event;创建的event用户默认为存储节点的连接用户;未use库,create/alter/drop event均不支持
CREATE FUNCTION限制支持单库场景下可支持
CREATE INDEXFOREIGN KEY支持
UNIQUE支持
父子表的FOREIGN KEY限制支持非分片字段作为外键关联字段时,无法跨节点保证父子表数据关联性。即在存储节点中,若父表与子表的外键值相等,则可匹配后插入数据,但当非关联字段作为外键关联字段时,由于子表外键关联字段路由的节点与父表分片字段的路由节点不一致,导致子表最终路由的存储节点中找不到父表所对应的外键值,故插入失败:ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails
FULLTEXT支持
SPATIAL支持
ALGORITHM支持
LOCK支持
FUNCTIONAL KEYS支持存储节点8.0新增功能
CREATE TABLECREATE TEMPORARY TABLE禁用
CREATE TABLE [IF NOT EXISTS]支持
CREATE TABLE LIKE支持
CREATE TABLE AS SELECT …支持1. 要求存储节点用户拥有CREATE TEMPORARY TABLE权限。
2. 要求CREATE的表和SELECT的表关联至少一个相同的数据节点,否则执行不成功:ERROR 10215 (HY000): [LOADTEST1] no overlapping datanode
3. 不支持CREATE TABLE … IGNORE SELECT和CREATE TABLE … REPLACE SELECT
GENERATED COLUMNS支持存储节点8.0与5.7新增功能
SECONDARY INDEXES支持存储节点8.0与5.7新增功能
CHECK支持存储节点8.0新增功能
CREATE TRIGGER支持目前仅支持单库,且需要赋予CREATE权限,内部语句不验证权限,DEFINER相关目前不支持,show trrigers时相关字段显示当前用户
CREATE VIEW支持
CREATE USER支持
CREATE ROLE支持

CREATE DATABASE 在计算节点使用时对应为创建逻辑库的功能,语法使用说明如下:

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_option] ... [DEFAULT DATANODE 'datanodeid']

说明:
create_option: [DEFAULT] { CHARACTER SET [=] charset_name |
COLLATE [=] collation_name } ```[DEFAULT DATANODE
‘datanodeid’]可以指定默认分片节点。当不单独指定时,默认关联所有数据节点;当指定时,按指定数据节点关联成逻辑库默认分片节点;当指定的datanodeid不存在时,提示:datanodeid
not exists。

服务端创建逻辑库语法示例:

create database if not exists zjj_d3 default datanode '1,4';

关联不存在的数据节点:
在这里插入图片描述

DROP语句

存储节点语句类型子句类型支持状态说明
DROP DATABASE支持支持直接删除逻辑库,功能使用说明可见表格下方补充描述。
DROP EVENT限制支持垂直库场景下支持
DROP FUNCTION禁用
DROP INDEXUNIQUE支持
普通索引KEY支持
FOREIGN KEY支持
FULLTEXT支持
SPATIAL支持
ALGORITHM支持
LOCK支持
DROP TABLEDROP [TEMPORARY] TABLE [IF EXISTS]禁用
DROP TABLE支持
DROP TABLE多表支持必须保证多表在相同节点
DROP TABLE table_name [RESTRICTCASCADE]支持
DROP TRIGGER支持需要赋予DROP权限
DROP VIEW支持
DROP USER支持
DROP ROLE支持

DROP DATABASE在计算节点使用时对应为删除逻辑库的功能,语法使用说明如下:

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

说明:

db_name为计算节点逻辑库名称;
server.xml新增参数enableDropDatabase,0为关闭,1为开启,默认值0;
当设置参数1时,可执行DROP {DATABASE | SCHEMA} [IF EXISTS] db_name语句,删除逻辑库时,若库中有表也会一起删除。
当设置参数0时,只允许删除空库,若库中有表则删除库失败。 

服务端删除逻辑库语法示例:

drop database if exists test_db;

设置enableDropDatabase=0,库中有表时提示:
在这里插入图片描述
设置enableDropDatabase=0且同时开启回收站功能,删除库中表后再删除库时提示:
在这里插入图片描述
设置enableDropDatabase=1,库中有表或开启回收站后删除表,均可以成功删除库:
在这里插入图片描述

TRUNCATE与RENAME语句

存储节点语句类型子句类型支持状态说明
RENAME TABLE支持1. 支持RENAME多张表,但要求这些表都在相同节点,否则将执行失败并报错:ERROR 10042 (HY000): unsupported to rename multi table with different datanodes
2. RENAME中的目标表不需要提前添加表配置,若添加新表的表配置,需要保证新表表配置与原表一致,否则RENAME将不成功
注意:计算节点数据库用户需要对旧表拥有ALTER和DROP权限,以及对新表拥有CREATE和INSERT权限
TRUNCATE TABLE支持

http://www.ppmy.cn/devtools/134571.html

相关文章

杨中科 .Net Core 笔记 DI 依赖注入2

ServiceCollection services new ServiceCollection();//定义一个承放服务的集合 services.AddScoped<iGetRole, GetRole>();using (ServiceProvider serviceProvider services.BuildServiceProvider()) {var list serviceProvider.GetServices(typeof(iGetRole));//获…

力扣题目解析--合并两个链表

题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输出&#xff…

Java基础:内部类

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

密码学在网络安全中的应用

密码学作为网络安全领域的核心技术之一&#xff0c;发挥着举足轻重的作用。以下是对密码学在网络安全中应用的详细阐述&#xff1a; 一、数据加密密码学通过加密算法将明文转换为密文&#xff0c;以防止未经授权的个人或机构获取敏感信息。这主要包括&#xff1a;对称加密&…

正点原子IMX6ULL--嵌入式Linux开发板学习中常用命令和笔记记录

学习路线图 传驱动文件 sudo cp chrdevbase.ko chrdevbaseApp /home/txj/linux/nfs/rootfs/lib/modules/4.1.15/ -f bootcmd setenv bootcmd tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000 setenv bootcmd tftp 80800000 zImag…

PHP大模型深度学习库TransformersPHP 安装体验

TransformersPHP是一个工具包&#xff0c;PHP开发人员可以轻松地将机器学习魔法添加到他们的项目中。 管方地址&#xff1a;TransformersPHP github地址&#xff1a;GitHub - CodeWithKyrian/transformers-php: Transformers PHP is a toolkit for PHP developers to add machi…

STM32芯片EXIT外部中断的配置与原理以及模板代码(标准库)

配置EXIT外部中断其实就是把GPIO刀NVIC的各个外设配置好 第一步&#xff1a;配置RCC&#xff0c;把我们涉及到的外设的时钟都打开 &#xff08;此处EXTI是默认打开的&#xff0c;而NVIC是内核外设无需配置&#xff09; 第二步&#xff1a;配置GPIO,选择端口为输入模式 第三…

NoSQL 数据库有哪些类型?

目录 NoSQL 是什么? SQL和 NoSQL 有什么区别? NoSOL数据库有什么优势? NoSQL 数据库有哪些类型? NoSQL 是什么? NoSQL&#xff08;Not Only SQL 的缩写&#xff09;泛指非关系型的数据库&#xff0c;主要针对的是键值、文档以及图形类型数据存储。并且&#xff0c;NoS…