MySQL中的INSERT
语句用于向数据库表中插入新的记录。它是SQL语言中最基本的操作之一,允许你向表中添加一行或多行数据。
INSERT
语句插入多条记录。单行插入:
INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');
多行插入:
INSERT INTO users (username, email)
VALUES
('jane_doe', 'jane@example.com'),
('jim_smith', 'jim@example.com');
从查询结果插入:
INSERT INTO user_profiles (user_id, bio)
SELECT id, bio FROM users WHERE role = 'admin';
问题:尝试插入的记录与表中已存在的记录的主键值重复。
原因:违反了主键的唯一性约束。
解决方法:
INSERT IGNORE
或ON DUPLICATE KEY UPDATE
语句来处理冲突。INSERT INTO users (id, username, email)
VALUES (1, 'john_doe', 'john@example.com')
ON DUPLICATE KEY UPDATE username='john_doe', email='john@example.com';
问题:插入的数据类型与表定义的数据类型不匹配。
原因:违反了数据类型的约束。
解决方法:
CAST
或CONVERT
)将数据转换为正确的类型。INSERT INTO users (username, age)
VALUES ('john_doe', CAST('30' AS SIGNED));
问题:执行INSERT
语句时收到权限错误。
原因:当前用户没有足够的权限向表中插入数据。
解决方法:
INSERT
语句。GRANT INSERT ON database_name.users TO 'username'@'host';
领取专属 10元无门槛券
手把手带您无忧上云