Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql中有版本控制吗?_Mysql_Controls_Version - Fatal编程技术网

mysql中有版本控制吗?

mysql中有版本控制吗?,mysql,controls,version,Mysql,Controls,Version,是否可以使用mysql数据库的版本控制系统? 或者,是否已经实施了版本控制系统 我想说,例如:从version=X的栏中选择foo 其中,eby版本是一个具有最后更新日期的mysql内部列。您还可以定义额外的表用于日志记录。例如,如果您已经有一个表news,您可以将其复制为news\u log。然后添加记录数据的列,例如:修改日期、操作(更新、删除、添加)等等 接下来,在原始表上定义触发器,将数据插入日志记录表。例如,当您更新新闻表中的记录时,将执行您定义的新闻日志触发器,并在新日志中插入一条新

是否可以使用mysql数据库的版本控制系统? 或者,是否已经实施了版本控制系统

我想说,例如:从version=X的栏中选择foo


其中,eby版本是一个具有最后更新日期的mysql内部列。

您还可以定义额外的表用于日志记录。例如,如果您已经有一个表news,您可以将其复制为news\u log。然后添加记录数据的列,例如:修改日期、操作(更新、删除、添加)等等

接下来,在原始表上定义触发器,将数据插入日志记录表。例如,当您更新新闻表中的记录时,将执行您定义的新闻日志触发器,并在新日志中插入一条新记录,操作值为“update”,当前日期为修改日期

有关mysql触发器的更多信息:


如果您想对每个项目都这样做,您可能会编写一个通用存储过程来执行实际的日志记录。这样,您就可以重用它,只需定义触发器和日志记录表。

非常晚响应。。。与鲁本的建议类似,我有设置触发器来更新版本控制表,以便在每次插入、更新和删除时增加版本号

我在我的网站上布置了台阶

**更新**
我决定使用触发器来协助版本控制。以下是如何

我有一个包含玩家的表,如果有更改(插入、删除或更新),我想在我的版本控制表中增加版本号

以下是版本控制表的外观: 版本号(键)、表名(varchar)、版本号(整数)

然后我在players表上创建了3个触发器,一个用于插入、删除和更新

插入:

    delimiter //
    CREATE TRIGGER `player_table_INSERT` AFTER INSERT ON `players`
    FOR EACH ROW BEGIN
    UPDATE version_control SET version=version+1 WHERE table_name=’players’;
    END;//
    delimiter ;
删除:

    delimiter //
    CREATE TRIGGER `player_table_DELETE` AFTER DELETE ON `players`
    FOR EACH ROW BEGIN
    UPDATE version_control SET version=version+1 WHERE table_name=’players’;
    END;//
    delimiter ;
更新:

    delimiter //
    CREATE TRIGGER `player_table_UPDATE` AFTER UPDATE ON `players`
    FOR EACH ROW BEGIN
    UPDATE version_control SET version=version+1 WHERE table_name=’players’;
    END;//
    delimiter ;

**我在FOR触发器的每个部分都有额外的SQL语句,因此我使用了分隔符(第一行和最后一行)以及BEGIN和END。

AFAIK否,在任何RDBMS中都没有这样的东西。我想你应该自己添加这个功能。例如,在所有表中增加一个“version”列(至少在需要版本控制的表中是这样)。另外,这个VC特性可能应该在ORM级别进行管理。回答不错。一般来说,如果你在这里复制尽可能多的答案,而不仅仅是链接到另一个网站,那就更好了;这样,即使链接因任何原因消失,答案仍然是好的。谢谢你的提示yochannah(第一次回答)。我会更新我的原始回复