为什么一直提示同样的错误?

我想将一个 SQL 文件放入一个数据库中 (es_extended.sql),但是它一直给我一些错误,如:重复列名 name 等。并且

SQL error (1050): Table 'items' already exists

我已经尝试更改列的名称等,但它仍然给出相同的错误。

以下是代码:

ALTER TABLE `users`

        ADD COLUMN  `money` VARCHAR(50) DEFAULT NULL,
    ADD COLUMN  `name` VARCHAR(50) NULL DEFAULT '' AFTER `money`,
    ADD COLUMN  `skin` LONGTEXT NULL AFTER `name`,
    ADD COLUMN  `job` VARCHAR(50) NULL DEFAULT 'unemployed' AFTER `skin`,
    ADD COLUMN  `job_grade` INT NULL DEFAULT 0 AFTER `job`,
    ADD COLUMN  `loadout` LONGTEXT NULL AFTER `job_grade`,
    ADD COLUMN  `position` VARCHAR(36) NULL AFTER `loadout`
;

CREATE TABLE `items` (
    `name` varchar(50) NOT NULL,
    `label` varchar(50) NOT NULL,
    `limit` int(11) NOT NULL DEFAULT '-1',
    `rare` int(11) NOT NULL DEFAULT '0',
    `can_remove` int(11) NOT NULL DEFAULT '1',

    PRIMARY KEY (`name`)
);

CREATE TABLE `job_grades` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `job_name` varchar(50) DEFAULT NULL,
    `grade` int(11) NOT NULL,
    `name` varchar(50) NOT NULL,
    `label` varchar(50) NOT NULL,
    `salary` int(11) NOT NULL,
    `skin_male` longtext NOT NULL,
    `skin_female` longtext NOT NULL,

    PRIMARY KEY (`id`)
);

INSERT INTO `job_grades` VALUES (1,'unemployed',0,'unemployed','Unemployed',200,'{}','{}');

CREATE TABLE `jobs` (
    `name` varchar(50) NOT NULL,
    `label` varchar(50) DEFAULT NULL,

    PRIMARY KEY (`name`)

;

INSERT INTO `jobs` VALUES ('unemployed','Unemployed');

CREATE TABLE `user_accounts` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `identifier` varchar(22) NOT NULL,
    `name` varchar(50) NOT NULL,
    `money` double NOT NULL DEFAULT '0',

    PRIMARY KEY (`id`)

);

CREATE TABLE `user_inventory` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `identifier` varchar(22) NOT NULL,
    `item` varchar(50) NOT NULL,
    `count` int(11) NOT NULL,

    PRIMARY KEY (`id`)
);
点赞
用户14956277
用户14956277

Sql 数据库是实现数据持久化层的一种方式:保留应该永久保存或至少独立于会话的数据。

你收到的错误:“SQL 错误(1050):表 'items' 已存在” 意味着你已经创建了一个同名的表,而你现在试图创建一个新表。

你不需要每次尝试向其中添加数据时重新创建表。只要你不删除它或它所属的数据库,表就是持久的。

如果你想重新创建表(因为你需要改变它的模式或者从头开始),可以运行命令 DROP TABLE items,它将删除表和表中的所有数据。

在删除后,你可以再次运行 CREATE TABLE items... 命令。

如果你不想删除表,只需运行 INSERT INTO items... 命令即可向现有表中添加数据。

“SQL 错误(xxxx):重复的列名 'name'” 的错误意味着你正尝试添加一个已经存在于表中的列。如果 users 表中已经有名为 'name' 的列,那么你不能运行 ALTER TABLE users ADD COLUMN 'name'... 命令,否则会出现错误。

如果该列不再符合你的需求,可以使用 ALTER TABLE users ALTER COLUMN 'name'... 更改该列的架构。

2021-01-11 20:21:01