这似乎是一个简单的问题,但经过一段时间的搜索,我无法找到答案.
我目前在我的本地数据库中有一个由webapp使用的MySQL表,它们在远程服务器上的数据库上有相同的表.现在,我正在使用CREATE TABLE IF NOT EXISTS命令通过PHP在数据库上创建表:
CREATE TABLE IF NOT EXISTS users (
`id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(18) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
但是,假设我对本地数据库进行了修改,例如添加了一个collumn.每次更改本地数据库时都必须更改远程数据库真的很烦人.如果表不存在,是否有更简单的方法来运行代码来创建表,如果它确实存在,请确保它的结构与create table结构的结构相匹配?
这是一个例子,让我想要传达更清晰的东西.让我们说在本地数据库中我有一个用户表,我决定在我的webapp中我想要另一个collumn,密码.所以我转到本地数据库并添加密码.是否有PHP / MysqL代码我可以运行以检查用户表是否存在,如果存在,请确保它有密码collumn,如果没有,添加它?
解决方法:
要直接回答您的问题,您可以创建临时过程来检测字段存在,就像使用这样的查询:
从table_name LIKE’column_name’显示列;
但是在现实世界中,数据库更改通常分为三个脚本.一个创建脚本和两个增量一个向上和向下一个.然后对数据库进行版本控制,以便您知道数据库在任何给定时间处于什么状态.