今天自洽了吗 2023-05-19 14:25 采纳率: 66.7%
浏览 21
已结题

SQL中关于建表语句问题

力扣上面一道SQL题的SQL架构如下:

Create table If Not Exists Employees(employee_id int, name varchar(20), reports_to int, age int)
Truncate table Employees
insert into Employees (employee_id, name, reports_to, age) values ('9', 'Hercy', 'None', '43')
insert into Employees (employee_id, name, reports_to, age) values ('6', 'Alice', '9', '41')
insert into Employees (employee_id, name, reports_to, age) values ('4', 'Bob', '9', '36')
insert into Employees (employee_id, name, reports_to, age) values ('2', 'Winston', 'None', '37')

它设置的employee_id,reports_to和age字段的类型都是int,为什么插入数据中写的都是字符串?
我在MySQL中直接使用这段语句建表会报错。

  • 写回答

3条回答 默认 最新

  • 码上团建 2023-05-19 14:36
    关注

    在MySQL中,如果表的字段类型是整数(int),插入数据时可以使用字符串或整数,但如果插入字符串,MySQL将尝试将其转换为整数。在这个例子中,虽然employee_id、reports_to和age的数据类型是int,但插入数据时使用了字符串,这会导致MySQL尝试将字符串转换为整数。如果字符串不能转换为整数,将会出现错误。因此,将插入数据中的单引号去掉即可。

    以下是更正后的代码:

    CREATE TABLE IF NOT EXISTS Employees (employee_id int, name varchar(20), reports_to int, age int);
    TRUNCATE TABLE Employees;
    INSERT INTO Employees (employee_id, name, reports_to, age) VALUES (9, 'Hercy', NULL, 43);
    INSERT INTO Employees (employee_id, name, reports_to, age) VALUES (6, 'Alice', 9, 41);
    INSERT INTO Employees (employee_id, name, reports_to, age) VALUES (4, 'Bob', 9, 36);
    INSERT INTO Employees (employee_id, name, reports_to, age) VALUES (2, 'Winston', NULL, 37);
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月27日
  • 已采纳回答 5月19日
  • 创建了问题 5月19日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表