尝试上传此.sql
文件,但继续收到错误消息:
1067 - Invalid default value for 'updated_at'
我读过很多人遇到同样问题的帖子。遗憾的是,无法升级mySQL
并使用timestamp
。
是否可以通过某种方式重新制作代码以使其与mySQL version: 5.5.16
一起使用?
我对mySQL
基本上一无所知,这只是需要上传的快速内容。
我在Windows上使用xampp
这是我的代码:
-- Create syntax for TABLE 'api_news'
CREATE TABLE `api_news` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`news_title` text NOT NULL,
`news_content` text NOT NULL,
`news_image` text,
`room_id` int(11) DEFAULT NULL,
`group_id` int(11) DEFAULT NULL,
`news_hidden` enum('0','1') NOT NULL DEFAULT '0',
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- Create syntax for TABLE 'api_news_comments'
CREATE TABLE `api_news_comments` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`article_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`message` text NOT NULL,
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Create syntax for TABLE 'api_profile_comments'
CREATE TABLE `api_profile_comments` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`profile_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`message` text NOT NULL,
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Create syntax for TABLE 'api_room_comments'
CREATE TABLE `api_room_comments` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`room_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`message` text NOT NULL,
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Create syntax for TABLE 'api_sessions'
CREATE TABLE `api_sessions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`session` varchar(100) NOT NULL DEFAULT '',
`expires` int(11) NOT NULL DEFAULT '0',
`data` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `user_session` (`session`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;
答案 0 :(得分:0)
您可以将该字段更改为时间戳,但是您必须自己处理代码中Eigen
的更新。
更改:
Eigen::Tensor<int, 2> a(4, 3);
a.setValues({{0, 100, 200}, {300, 400, 500},
{600, 700, 800}, {900, 1000, 1100}});
Eigen::array<int, 2> offsets = {1, 0};
Eigen::array<int, 2> extents = {2, 2};
Eigen::Tensor<int, 1> slice = a.slice(offsets, extents);
cout << "a" << endl << a << endl;
=>
a
0 100 200
300 400 500
600 700 800
900 1000 1100
cout << "slice" << endl << slice << endl;
=>
slice
300 400
600 700
收件人:
updated_at
其他人发布了您遇到的与MySQL版本有关的similar issue。
如果您不介意使用更新前触发器解决方案作为替代解决方法,则该链接上的信息也具有要更新的触发器示例。