📜  更改表添加外键 mariadb 示例 - SQL (1)

📅  最后修改于: 2023-12-03 14:55:15.538000             🧑  作者: Mango

更改表添加外键 MariaDB 示例 - SQL

在 MariaDB 中,可以通过更改表来添加外键,以确保表的数据完整性和一致性。在本篇文章中,我们将介绍如何使用 SQL 命令来更改表并添加外键。

语法

以下 SQL 命令用于在 MariaDB 中更改表并添加外键:

ALTER TABLE table_name
ADD CONSTRAINT foreign_key_name
FOREIGN KEY (column_name)
REFERENCES referenced_table_name (referenced_column_name);
参数说明
  • table_name:要更改的表名。
  • foreign_key_name:外键名称,可以自定义。
  • column_name:要添加外键的列名。
  • referenced_table_name:外键参考的表名。
  • referenced_column_name:外键参考的列名。
示例

假设我们有两个表 orderscustomers,其中 orders 表的 customer_id 列参考了 customers 表的 id 列。现在,我们要将 orders 表的 customer_id 列添加外键,并指向 customers 表的 id 列。

1、创建 customers 表

首先,我们需要创建 customers 表,命令如下:

CREATE TABLE customers (
  id INT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  email VARCHAR(50) NOT NULL UNIQUE
);
2、创建 orders 表

接着,我们需要创建 orders 表,命令如下:

CREATE TABLE orders (
  id INT PRIMARY KEY,
  order_number VARCHAR(50) NOT NULL,
  customer_id INT NOT NULL
);

注意,orders 表的 customer_id 列没有设置为外键。

3、添加外键

现在,我们要将 orders 表的 customer_id 列添加外键,指向 customers 表的 id 列。命令如下:

ALTER TABLE orders
ADD CONSTRAINT fk_orders_customers
FOREIGN KEY (customer_id)
REFERENCES customers (id);

这里,我们使用 ALTER TABLE 命令来更改 orders 表,并使用 ADD CONSTRAINT 子句来添加外键。我们设置外键名称为 fk_orders_customers,并将 customer_id 列设置为外键,参考了 customers 表的 id 列。

4、验证外键

最后,我们可以使用以下命令来验证外键是否已成功添加:

SHOW CREATE TABLE orders;

输出结果如下:

| Table | Create Table |
|-------|--------------|
| orders | CREATE TABLE `orders` (
  `id` int(11) NOT NULL,
  `order_number` varchar(50) NOT NULL,
  `customer_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_orders_customers` (`customer_id`),
  CONSTRAINT `fk_orders_customers` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |

可以看到,在输出结果中,fk_orders_customers 被标识为外键,同时也指定了参考的表和列。

结论

通过以上示例,我们可以了解到如何使用 SQL 命令在 MariaDB 中更改表并添加外键。外键可以保证表的数据完整性和一致性,但在实际应用中需要考虑好外键的使用。