从MariaDB 10.2升级到MariaDB 10.3之后,我使用系统版本更改表$(document).click(function(e) {
var ele = $(e.toElement);
if (!ele.hasClass("hasDatepicker") && !ele.hasClass("ui-datepicker") && !ele.hasClass("ui-icon") && !$(ele).parent().parents(".ui-datepicker").length)
$(".hasDatepicker").datepicker("hide");
});
。
MYSQL控制台:
documents
从现在开始,所有更新将保存在我的数据库中。
我的问题是:
我不希望mariadb存储所有SQL的所有版本,例如> SHOW CREATE TABLE documents \G
*************************** 1. row ***************************
Table: documents
Create Table: CREATE TABLE `documents` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`label` varchar(255) DEFAULT NULL,
`writing_content` text DEFAULT NULL,
`is_locked` tinyint(1) DEFAULT 0,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=697 DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING
我的目标是:
如果未修改列update document set ...
的值,则数据库中不会生成新版本。
rails应用程序中的示例:
writing_content
如何在我的控制器中执行此控制?谢谢您的任何建议。
Env: Ruby 2.4.1 Rails 5.1.6
答案 0 :(得分:0)
我自己找到了答案:
从版本控制中排除列
除writing_contents
以外的所有其他列都可以声明为没有版本。
创建一个新表:
Create Table: CREATE TABLE `documents` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`label` varchar(255) DEFAULT NULL WITHOUT SYSTEM VERSIONING,
`writing_content` text DEFAULT NULL,
`is_locked` tinyint(1) DEFAULT 0 WITHOUT SYSTEM VERSIONING,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=697 DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING
修改现有表格的列:
SET @@system_versioning_alter_history = 1;
ALTER TABLE document MODIFY writing_content WITH SYSTEM VERSIONING;