编写 mySQL 代码时,什么是更好的做法?

When writing mySQL code, what's a better practice?

我正在学习 mySQL,仍在学习基础知识。 我老师说过,写代码,最好的代码在前,所有的表格;然后,ALTER TABLE 查询向表中插入键。这样,我们就可以正确命名键。我确信他对外键这样做。他也用主键示例来教授这一点;然而,在为他提出的练习提供答案文件时,他在表格中键入了主键,后来只更改了外键。 那我该怎么办呢?始终在表中插入主键,稍后更改外键?还是我应该同时更改主键和外键?我目前正在尝试做他后者,并遇到主键的 auto_increment 问题。 感谢您的见解!

您不能重命名主键,因此稍后在 ALTER 语句中重命名是没有意义的。
您 运行 遇到了 auto_increment 的问题,因为 auto_increment 列也必须是主键(的一部分)。所以你不能指定一个 auto_increment 列,但不能同时将其设为主键。

问题是,这个问题实际上已经过时了,因为您也可以在创建 table 时命名您的外键。这对我来说是首选的方式。一切都在一个声明中完成。它看起来像这样:

CREATE TABLE foo (
id int auto_increment primary key,
bar int,
constraint my_fancy_fk_name foreign key (bar) references other_table(whatever_column)
);