MySql的锁的问题
对以下创建用户表时的锁的语句不是很明白,
LOCK TABLES `message` WRITE;这个语句是什么意思?如何用?什么情况下用?
UNLOCK TABLES;这个语句是什么意思?如何用?什么情况下用?
为什么要有锁?锁的作用是什么?以及平时如何去使用锁?
下面是MySql创建表的语句
CREATE DATABASE message_board;
use message_board;
DROP TABLE IF EXISTS `message`;
CREATE TABLE `message` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) NOT NULL,
`username` varchar(32) NOT NULL,
`title` varchar(32) NOT NULL,
`content` varchar(4096) NOT NULL,
`create_time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8;
LOCK TABLES `message` WRITE;
INSERT INTO `message` VALUES (1,1,'admin','慕课网好','<span clolor=\'red\'>慕课网是垂直的互联网IT技能免费学习网站。以独家视频教程、在线编程工具、学习计划、问答社区为核心特色。在这里,你可以找到最好的互联网技术牛人,也可以通过免费的在线公开视频课程学习国内领先的互联网IT技术。</span>','2017-03-25 22:17:23');
UNLOCK TABLES;
--
-- Table structure for table `user`
--
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(32) NOT NULL,
`password` varchar(32) NOT NULL,
`real_name` varchar(32) DEFAULT NULL,
`birthday` datetime DEFAULT NULL,
`phone` varchar(16) DEFAULT NULL,
`address` varchar(128) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `user_username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
LOCK TABLES `user` WRITE;
INSERT INTO `user` VALUES (1,'admin','admin','张三丰','1980-01-01 00:00:00','13800000000','武当山武当观1-1'),(2,'test','test',NULL,NULL,NULL,NULL),(8,'mooc','mooc',NULL,NULL,NULL,NULL);
UNLOCK TABLES;
正在回答
同学你好,程序中会出现多个程序在极接近的时间连接操作数据库,可以设置事务的隔离级别来解决多个程序访问数据库可能出现的问题。关于事务将会在第四个阶段讲到。jdbc链接MySQL时,MySQL也可以使用锁。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星