gpt4 book ai didi

MySql;更新表字段的正确方法

转载 作者:行者123 更新时间:2023-11-29 06:34:21 25 4
gpt4 key购买 nike

当尝试描述一个表时,我得到一个缺少信息的表(参见第一个表);以类似于第二种的方式更新该表的最佳方法是什么?我的 SQL 背景不太强,所以我很想听听有关如何做到这一点的想法

第一个表(实际上是怎样的)

+-----------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+-------+
| config_id | int(10) unsigned | NO | | 0 | |
| scope | varchar(8) | NO | | default | |
| scope_id | int(11) | NO | | 0 | |
| path | varchar(255) | NO | | general | |
| value | text | YES | | NULL | |
+-----------+------------------+------+-----+---------+-------+

第二个表(应该如何)

+-----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+----------------+
| config_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| scope | varchar(8) | NO | MUL | default | |
| scope_id | int(11) | NO | | 0 | |
| path | varchar(255) | NO | | general | |
| value | text | YES | | NULL | |
+-----------+------------------+------+-----+---------+----------------+

最佳答案

我发现两个表之间存在以下差异:

  • config_id应该是auto_increment并且也是表的主键
  • 范围上缺少(非唯一)索引

以下语句应根据需要更改表:

 ALTER TABLE mytable 
MODIFY COLUMN config_id INT auto_increment,
ADD PRIMARY KEY (config_id),
ADD INDEX idx_scope(scope)
;

PS:DEFAULT NULL 对于 config_id 没有意义:因为它是主键,所以您的 RDBMS 永远不会允许将其设置为 NULL.

请注意,此答案仅基于您提供的信息。运行此语句不一定会使表结构严格等效,因为可能存在在您提供的表示中看不到的其他差异。您可以使用 SHOW CREATE TABLE mytable 语法获取描述该表的完整 DDL 语句。

关于MySql;更新表字段的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54608769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com