【问题标题】:Altering a table an saving it to mariadb mysql更改表并将其保存到 mariadb mysql
【发布时间】:2023-03-04 21:58:01
【问题描述】:

首先,在插入我的数据库时,我在一个表上特别抛出了一个错误......下面有问题的那个......第一个错误是:指定的关键部分太多;最多允许 16 个部件

Mysql MariaDB 最难将其插入表中。该表已经在数据库中创建,它是空白的 atm。我正在通过语法检查器运行它,它一直在吐出这个错误,我不熟悉这个错误或者不知道如何修复它。

这是错误:

>  You have an error in your SQL syntax; check the manual that
> corresponds to your MySQL server version for the right syntax to use
> near '( `entity_id` int(10) unsigned NOT NULL COMMENT 'Entity ID',
> `name` text COM' at line 1

这是 SQL (ALTER TABLE) 语句:

 ALTER TABLE `customer_grid_flat` (
      `entity_id` int(10) unsigned NOT NULL COMMENT 'Entity ID',
      `name` text COMMENT 'Name',
      `email` varchar(255) DEFAULT NULL COMMENT 'Email',
      `group_id` int(11) DEFAULT NULL COMMENT 'Group_id',
      `created_at` timestamp NULL DEFAULT NULL COMMENT 'Created_at',
      `website_id` int(11) DEFAULT NULL COMMENT 'Website_id',
      `confirmation` varchar(255) DEFAULT NULL COMMENT 'Confirmation',
      `created_in` text COMMENT 'Created_in',
      `dob` date DEFAULT NULL COMMENT 'Dob',
      `gender` int(11) DEFAULT NULL COMMENT 'Gender',
      `taxvat` varchar(255) DEFAULT NULL COMMENT 'Taxvat',
      `lock_expires` timestamp NULL DEFAULT NULL COMMENT 'Lock_expires',
      `customer_discount_group` varchar(255) DEFAULT NULL COMMENT 'Customer_discount_group',
      `net_terms_id` text COMMENT 'Net_terms_id',
      `origin` text COMMENT 'Origin',
      `parent_customer_id` text COMMENT 'Parent_customer_id',
      `shipping_payment_type` text COMMENT 'Shipping_payment_type',
      `target_customer_id` text COMMENT 'Target_customer_id',
      `target_salesperson_id` text COMMENT 'Target_salesperson_id',
      `shipping_full` text COMMENT 'Shipping_full',
      `billing_full` text COMMENT 'Billing_full',
      `billing_firstname` varchar(255) DEFAULT NULL COMMENT 'Billing_firstname',
      `billing_lastname` varchar(255) DEFAULT NULL COMMENT 'Billing_lastname',
      `billing_country_id` varchar(255) DEFAULT NULL COMMENT 'Billing_country_id',
      `billing_street` varchar(255) DEFAULT NULL COMMENT 'Billing_street',
      `billing_vat_id` varchar(255) DEFAULT NULL COMMENT 'Billing_vat_id',
      PRIMARY KEY (`entity_id`),
      KEY `CUSTOMER_GRID_FLAT_GROUP_ID` (`group_id`),
      KEY `CUSTOMER_GRID_FLAT_CREATED_AT` (`created_at`),
      KEY `CUSTOMER_GRID_FLAT_WEBSITE_ID` (`website_id`),
      KEY `CUSTOMER_GRID_FLAT_CONFIRMATION` (`confirmation`),
      KEY `CUSTOMER_GRID_FLAT_DOB` (`dob`),
      KEY `CUSTOMER_GRID_FLAT_GENDER` (`gender`),
      KEY `CUSTOMER_GRID_FLAT_BILLING_COUNTRY_ID` (`billing_country_id`),
      FULLTEXT KEY `FTI_E6952E9D8A6EAABA183A6212F5AE5345` (`name`,`email`,`created_in`,`taxvat`,`origin`,`parent_customer_id`,`shipping_payment_type`,`target_customer_id`,`shipping_full`,`billing_full`,`billing_firstname`,`billing_lastname`)
    );

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • select version(); 显示什么?
  • 8.0.22-0ubuntu0.20.04.2 @ysth
  • 看起来你有一个 ALTER TABLE 命令,它看起来像 CREATE TABLE 语法。在您的示例下方,有一个 CREATE TABLE 语句,所以也许只是需要删除 ALTER 语句?
  • 我想我不小心粘贴了两次。让我解决这个问题
  • alter table 的语法与 create table 完全不同,但您将其视为相同。听起来您已经创建了表;你想改变什么?

标签: mysql mariadb


【解决方案1】:

ALTER TABLE 需要 ADD COLUMNADD INDEX,而不是你拥有的。

表已创建,但其中没有任何内容。所以我正在尝试插入所有列

那句话是模棱两可的。第一部分“没有任何内容”,通常表示“没有行”。但是,如果您的意思是“没有列”,那么我建议您只需 DROP TABLE... 摆脱您拥有的零列表,只需将 ALTER 更改为 CREATE 并运行它。

【讨论】:

    猜你喜欢
    • 2017-09-22
    • 2020-09-04
    • 1970-01-01
    • 2011-07-25
    • 2013-07-07
    • 2018-06-04
    • 1970-01-01
    • 2012-09-04
    • 2017-01-31
    相关资源
    最近更新 更多