MySQL 中的表约束是用来确保数据的完整性和一致性的规则。约束可以应用于表中的列或整个表。常见的约束类型包括:
PRIMARY KEYUNIQUEFOREIGN KEYNOT NULLDEFAULTCHECK(MySQL 不直接支持)要查询表的约束信息,可以使用 SHOW CREATE TABLE 或 DESCRIBE 命令。
SHOW CREATE TABLESHOW CREATE TABLE table_name;DESCRIBEDESCRIBE table_name;假设有一个名为 users 的表,结构如下:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL UNIQUE,
age INT DEFAULT 18
);查询 users 表的约束信息:
SHOW CREATE TABLE users;输出示例:
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`email` varchar(100) NOT NULL,
`age` int(11) DEFAULT '18',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;问题: 插入数据时违反唯一约束。 原因: 插入的数据在唯一约束的列中已经存在。 解决方法:
INSERT IGNORE 或 ON DUPLICATE KEY UPDATE 语句处理重复数据。示例:
INSERT INTO users (username, email, age)
VALUES ('john_doe', 'john@example.com', 25)
ON DUPLICATE KEY UPDATE age = 25;参考链接:
没有搜到相关的文章