📅  最后修改于: 2023-12-03 14:55:15.538000             🧑  作者: Mango
在 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
:外键参考的列名。假设我们有两个表 orders
和 customers
,其中 orders
表的 customer_id
列参考了 customers
表的 id
列。现在,我们要将 orders
表的 customer_id
列添加外键,并指向 customers
表的 id
列。
首先,我们需要创建 customers
表,命令如下:
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL UNIQUE
);
接着,我们需要创建 orders
表,命令如下:
CREATE TABLE orders (
id INT PRIMARY KEY,
order_number VARCHAR(50) NOT NULL,
customer_id INT NOT NULL
);
注意,orders
表的 customer_id
列没有设置为外键。
现在,我们要将 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
列。
最后,我们可以使用以下命令来验证外键是否已成功添加:
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 中更改表并添加外键。外键可以保证表的数据完整性和一致性,但在实际应用中需要考虑好外键的使用。