在MySQL(非生产)测试服务器中进行修改,删除表,进行可逆更改的最佳实践提示有哪些?就我而言,我正在学习PHP / MySQL框架。
我工具箱中唯一的常用工具是在删除文件之前重命名文件。如果出现问题,我总是可以将文件恢复为原始名称。我认为将相同的做法应用于数据库应该没问题,因为客户端可能会失去与主机的连接。然而,当参照完整性仅在一个地方被破坏时, Web应用程序框架如何继续?
答案 0 :(得分:0)
我猜你指的是交易。 MySQL中的InnoDB引擎支持事务以及外键约束。
在事务设计中,您可以执行一系列需要作为单个实体执行的查询,以便有意义并保持数据完整性。启动一个事务,如果出现问题,它会执行回滚,从而恢复到目前为止所做的每一个更改,或者在数据库中提交整个修改集。
外键是引用数据的约束。因此,在主 - 细节关系中,您不能例如引用不存在的主记录。如果有一个表 comments ,其中user_id引用了 users.id 字段,则不允许您为不存在的用户输入注释。
如果愿意,请在此处阅读更多内容 http://dev.mysql.com/doc/refman/5.0/en/innodb-transaction-model.html 和外键 http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html