工作杂记
记录一些零碎
【MYSQL】
- 连接方式。连接 mysql 服务器可以通过 tcp/ip,也可以通过 socket(仅限于本地) 。当在连接命令中指定 mysql 服务器 ip 时,连接方式为 tcp/ip 。当连接命令中不指定连接 ip 或 或者 ip 为 localhost 时,连接方式为 socket。如果使用 socket 连接时,mysql 默认从 /tmp 目录下寻找 mysql.sock 文件,如果没有找到,并且没有在全局选项文件里指定,那么会报“Can't connect to local MYSQL server through socket '/tmp/mysql.sock'” 的错误。这种情况下,可以尝试重启 mysql 服务器,重启后进入 /tmp 目录下查看是否生成 mysql.sock,如果没有,先使用命令查找下是否存在 mysql.sock 文件。比如:find / -name mysql.sock,或者 whereis mysql.sock。查询到位置后,那么可以通过修改 /etc/my.cnf 文件:
[mysqld] # 示例位置 socket=/opt/mysql/tmp/mysql.sock [client] socket=/opt/mysql/tmp/mysql.sock
在文件中指定该位置,然后重启 mysql。注意,客户端和服务器需要同时指定同一个位置! - mysql 5.7 在创建联合主键时,每个主键均不能为空!即 NOT NULL。
- 触发器 trigger。现假设有两张表 A 和 B。在 A 表进行 INSERT 操作后,对 B 表的 VERSION 字段做 + 1 的更新操作:
-- ----------------- -- 触发器 -- ----------------- DROP TRIGGER IF EXISTS `test_trigger`; DELIMITER ;; CREATE TRIGGER `test_trigger` AFTER INSERT ON `A` FOR EACH ROW BEGIN UPDATE `B` SET VERSION = VERSION + 1 WHERE ID = NEW.B_ID; END ;; DELIMITER ;
其中 DELIMITER 是 mysql 中的分隔符,默认的分隔符为分号“;”,当一次输入的语句不止一行,且行与行之间有分号,那么需要对该段语句重新定义分隔符。DELIMITER ;; 表示从这行开始分割符为 ;;,当语句结束后需要变回原来的单分号,那么指定 DELIMITER ; 即可。NEW.B_ID 中的 NEW 表示 A 表插入后的数据,这个是特定语法,对应的还有 OLD。 - 视图 VIEW
相关推荐
要啥自行车一把梭 2020-11-12
minerk 2020-11-12
vitasfly 2020-11-12
xkorey 2020-09-14
sofia 2020-08-15
liang枫 2020-08-07
herohope 2020-07-18
mrandy 2020-07-04
Jaystrong 2020-06-27
wangwtotao 2020-06-27
msmysql 2020-06-26
李高峰 2020-06-22
InJavaWeTrust 2020-06-21
debugjoker 2020-06-17
sunnyxuebuhui 2020-06-16
勇往直前 2020-06-14
wensonlee 2020-06-12
vivenwan 2020-06-06