我正在尝试通过phpMyAdmin上传备份sql文件。
使用与phpMyAdmin中的导入文件相同的db名称创建空数据库,然后使用从此空数据库中选择的导入函数。
我收到以下错误消息。
#1050 - Table '`db`.`t`' already exists
在导入文件中,每个CREATE TABLE
语句后缀为IF NOT EXISTS
,为什么会将此报告为错误?
--
-- Database: `mbfour`
--
-- --------------------------------------------------------
--
-- Table structure for table `cars`
--
CREATE TABLE IF NOT EXISTS `cars` (
`car_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`type` varchar(200) NOT NULL,
`status` varchar(20) NOT NULL,
`capacity` varchar(5) NOT NULL,
PRIMARY KEY (`car_id`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Dumping data for table `cars`
--
INSERT INTO `cars` (`car_id`, `type`, `status`, `capacity`) VALUES
(1, 'automatic', 'built', '4L'),
(2, 'automatic', 'in-production', '2L'),
(3, 'automatic', 'built', '2L'),
(4, 'automatic', 'in-production', '4L');
....
....
是否有任何魔法发生?
尝试两次然后我以同样的方式导入,它有效
谢谢大家.....
答案 0 :(得分:9)
请在每个查询的顶部添加:
DROP TABLE IF EXISTS `cars`;
CREATE TABLE IF NOT EXISTS `cars`
答案 1 :(得分:0)
您只需在sql文件中注释create database的查询
请在您的sql文件中添加注释或删除代码,然后尝试
/ * CREATE TABLE IF NOT NOT EXISTS cars
(
car_id
smallint(5)unsigned NOT NULL AUTO_INCREMENT,
type
varchar(200)NOT NULL,
status
varchar(20)NOT NULL,
capacity
varchar(5)NOT NULL,
PRIMARY KEY(car_id
),
)ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 5; * /
答案 2 :(得分:0)
我正在处理同样的问题而无法理解。当我尝试将外键链接到我的连接表时,查询将失败并显示相同的1050错误消息,它只会保留我创建的第一个关系。 我注意到phpmyadmin自动给出了它保留名称的约束,我只是复制了那个名字(在" Constrain名称"下)并替换了" 1"与" 2"并再次运行查询,没问题。两种关系都得到了保存希望这会有所帮助。