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

eanckbw9  于 2023-11-16  发布在  PHP
关注(0)|答案(1)|浏览(77)

我不知道这是否可能。
我发布了一个脚本版本1.0,现在我即将发布1.2版本,我在数据库表中做了一些升级,如更改名称字段大小或默认值,还添加了一些新的列和表,然后将完整的数据库导出到.sql文件(新数据库)。
有没有可能从PHP导入新的.sql文件并添加新的表,也可以在不删除表中任何数据的情况下更改列结构,并在现有表中添加新列?
我试图导入它,但它显示此错误:
ALTER TABLE table1 ADD 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)
  • coloum 1(大小-100,默认值-无)
  • coloum 2(大小-255,默认值-无)

是否可以在旧数据库上导入新的.sql而不丢失PHP中的任何数据,并从新数据库中添加数据?
我已经尽力解释了,希望你能理解。
编辑:我用这段代码导入新的.sql文件,它不工作:How do I import a .sql file in mysql database using PHP?

gdrx4gfi

gdrx4gfi1#

你得到这个消息是因为列id已经存在并且有KEY,如果它的PRIMARY KEY和autocremented那么它不能被复制,试试这个:

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';

字符串
或者只导入新列

相关问题