返回顶部

数据库笔记杂

MySQL

  1. 用MySQL 8.0+ 连接数据库的时候,注意需要在url里面指定serverTimezone
    Like this : <property name="url" value="jdbc:mysql://localhost:3306/springdatastudy?serverTimezone=UTC"/>
  2. Linux 环境下MySQL默认对大小写敏感,而Windows下则大小写不敏感。
  3. 数据库字符集会对查询结果有影响,比如utf8_bin是区分大小写的,而utf8_general_ci是不区分大小写的。
  4. 数据库字符优先级有:系统级、数据库级、表级、字段。这5个优先级中字段优先级最高。
  5. MySQL和Oracle 默认的数据库隔离级别:
    1) mysql innodb 默认数据库隔离级别是 可重复读;可重复读是指,在一个事务中,前后两次读取到的结果都是一致的;
    2) oracle 默认数据库隔离级别是 读已提交; 读已提交是指,在一个事务A中,前后两次独到的结果是不一样的;事务A中会读到事务B已提交的记录;
  6. 在利用MyBatis写SQL语句时,之前的表字段设计不合理,表字段与数据库预留字段重复了,则需要利用特定的符号包裹这些字段,以防出现语法错误:
    SQL语句避免数据库保留字的方法:
    MySQL
    insert into A(`KEY`,`DESC`) values('TEST_KEY','这是一个key值');
    ORACLE
    insert into A(KEY,"DESC") values('TEST_KEY','这是一个key值');
    DB2
    insert into A(KEY,[DESC]) values('TEST_KEY','这是一个key值');
    7.MySQL 批量删除数据库表:
    SELECT CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables WHERE table_name LIKE 't_%';

MySQL 创建函数的时候,提示 “1422 - Explicit or implicit commit is not allowed in stored function or trigger.” ?

1422-存储函数或触发器中不允许显式或隐式提交。说明创建函数的SQL脚本中,包含了commit语句。
下面是MySQL中隐式提交的SQL语句,参考文档:官方文档

ALTER DATABASE UPGRADE DATA DIRECTORY NAME,
ALTER EVENT,
ALTER PROCEDURE,
ALTER TABLE,
ALTER VIEW,
CREATE DATABASE, 
CREATE EVENT, 
CREATE INDEX, 
CREATE PROCEDURE, 
CREATE TABLE, 
CREATE TRIGGER, 
CREATE VIEW,
DROP DATABASE, 
DROP EVENT, 
DROP INDEX, 
DROP PROCEDURE,
DROP TABLE, 
DROP TRIGGER, 
DROP VIEW, 
RENAME TABLE,
TRUNCATE TABLE
posted @ 2020-11-26 23:53  ToolsMan  阅读(144)  评论(0编辑  收藏  举报