![[Err] 1294 - Invalid ON UPDATE clause for 'update_time' column,第1张 [Err] 1294 - Invalid ON UPDATE clause for 'update_time' column,第1张](/aiimages/%5BErr%5D+1294+-+Invalid+ON+UPDATE+clause+for+%26%23039%3Bupdate_time%26%23039%3B+column.png)
DROP TABLE IF EXISTS `seller`
CREATE TABLE `seller` (
`id` bigint(11) NOT NULL AUTO_INCREMENT,
`phone` varchar(120) NOT NULL COMMENT '手机号',
`password` varchar(120) DEFAULT NULL,
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`xvp_store_id` bigint(11) DEFAULT NULL COMMENT '小V铺的店铺id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=86358 DEFAULT CHARSET=utf8 COMMENT='卖家账户信息'
错误代码: 1293
Incorrect table definitionthere can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
解决方法:
第一步、改变timestamp类型字段,只存在一个,另一个用datetime类型;
第二部、用触发器:
DROP TRIGGER IF EXISTS `update_seller_trigger`
DELIMITER //
CREATE TRIGGER `update_seller_trigger` BEFORE UPDATE ON `seller`
FOR EACH ROW SET NEW.`update_time` = NOW()
//
DELIMITER
效果一样
Navicat 9 Lite(服务器已经装要安装)二、打Navicat---连接---Mysql
三、填写数据库连接信息
四、导数据库文件
双击打创建连接---选择您数据库---右键点击---选择"转储SQL文件"即数据库导入.sql文件
五、 导入数据库文件 1)双击打创建连接---选择您数据库---右键点击---选择"运行SQL文件"
2)选择您数据库备份文件及备份文件编码默认选择编码65001
(UTF-8)导入失败删除失败表尝试选择936( Simplified Chinese GBK ) 再导入
3)进度条显示完并且没提示错误则功导入点击"表"按F5刷新即看导入内容
启动Mysql提示ERROR! The server quit without updating PID file (/usr/local/var/mysql/xxxx.local.pid).
1、查看mysql错误日志:打开/usr/local/var/mysql/xxxx.err或者xxxx.local.err文件。
2、问题应该是某个程序占用了mysql的默认端口3306。
3、查看端口使用情况lsof -i:3306,发现是一个用户名为_mysql启动了mysqld指令占用了3306,感觉现象非常奇怪,不清楚为什么会有这个用户组,为什么会启动mysqld,由于这个电脑是公司其他同事转移资产到的我名下,所以有可能是之前用户或者公司it装了什么服务导致的。
4、首先尝试干掉进程:sudo kill xxxx,结果发现当kill后,还会重新启动。
5、尝试修改mysql默认启动端口,Baidu上有人告诉修改/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist文件
添加<string>--port=3307</string>保存,先重新启动mysql服务,发现问题依然存在,发现配置没有起作用,默认端口依然是3306,然后考虑重新启动电脑,看看是否可以修改占用默认端口的配置。
6、重启后再次查看3306端口占用情况,发现确实不存在了。但是发现启动mysql服务时,依然存在问题:
仔细观察发现,这个占用和plist中的mysql配置一样的,所以可以确定每次启动计算机后,会按默认配置执行一个mysqld。
7、不清楚为什么会按com.oracle.oss.mysql.mysqld.plist配置执行mysqld,于是把注意力放在了Mac启动上。
8、Mac的启动原理是:
看到这里就明白了,原来LaunchDaemons里面放的是Mac启动时的一些启动服务,
9、System/Library和/Library和~/Library目录的区别:
10、System/Library和/Library和~/Library目录的区别:
11、有了上面的结果,于是把注意力放在了com.oracle.oss.mysql.mysqld.plist上,每个Mac启动中都有么,这个是如何添加的。首先查看了家里的其他苹果电脑,发现都没有这个plist文件,于是开始研究这个文件的产生原因。
12、经过Baidu怀疑这个文件应该是之前用dmg安装包安装的mysql产生的,在设置中也发现了残留信息
于是果断把自动启动去掉,重启计算机。
13、重启后,发现无论是3306还是3307端口上都没有mysql服务了,于是运行mysql.server start,这次终于看见了Starting MySQL . SUCCESS!
14、删除com.oracle.oss.mysql.mysqld.plist文件,重启电脑后,发现设置中仍然还有MySQL的控制选项。
15、MySQL dmg安装方式的卸载方法:
至此,这个问题算是完美解决了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)