(php)导入.sql并在表存在时添加列或创建新表

时间:2015-09-19 09:31:25

标签: php mysql database

我不知道是否可能。

我发布了一个脚本版本1.0 现在我即将发布1.2版本,我在数据库表中进行了一些升级,例如更改名称字段大小或默认值,还添加了几个新列和表,然后将完整数据库导出到.sql文件(新数据库)。

是否有可能从php导入新的.sql文件并添加新表并更改列结构而不删除表中的任何数据并在现有表中添加新列?

我尝试导入它但显示此错误: 'ALTER TABLE table1添加PRIMARY KEY(id); ':定义了多个主键

示例:

旧数据库v1.0

表1

ID(主键,AI)

名字(大小为50,默认 - 无)

姓氏(尺寸-50,默认 - 无)

电子邮件(尺寸-50,默认 - 无)

密码(尺寸-50,默认 - 无)

新数据库v1.2

表1

ID(主键,AI)

名字(大小100,默认 - 无)

姓氏(大小为100,默认 - 无)

电子邮件(尺寸255,默认 - 无)

密码(尺寸-50,默认 - 无)

性别(大小10,默认 - 无)

增加了表2

ID(主键,AI)

coloum1(size-100,default - none)

coloum2(size-255,default - none)

是否可以在旧数据库上导入新的.sql而不从php中删除任何数据并从新数据库中添加数据?

我尽力解释你理解的希望。

编辑:我使用此代码导入新的.sql文件,但无效:how to import .sql file in mysql database using php

1 个答案:

答案 0 :(得分:0)

你得到那条消息因为列id已经存在并且有KEY,如果它的PRIMARY KEY和AUTOINCREMENTED那么它就不能重复了,试试这个:

ALTER TABLE Table1 ADD COLUMN Gender varchar(10) NOT NULL DEFAULT 'none';
ALTER TABLE Table2 ADD COLUMN coloum1 varchar(100) NOT NULL DEFAULT 'none';
ALTER TABLE Table2 ADD COLUMN coloum2 varchar(255) NOT NULL DEFAULT 'none';

或只是导入新列