为了账号安全,请及时绑定邮箱和手机立即绑定

create...select...问题

CREATE TABLE tdb_goods_brands (


    brand_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,


    brand_name VARCHAR(40) NOT NULL


  ) SELECT brand_name FROM tdb_goods GROUP BY brand_name;

这语法中select返回的是一列,居然可以插入到新表中,而不用指定插入列的名称,如果说brand_id为自动编号,还可以理解。那如果新建的这张表是定义了3个字段,那么是插入到哪个字段中呢。

还有视频中提到字段定义[(create_definition,...)](上面小括号中的代码)可以省略,实在弄不懂,新建的表如果字段都没有怎么插入select返回的记录呢

我先去实验下

正在回答

1 回答

实验结果出来了吗

0 回复 有任何疑惑可以回复我~
#1

深山小童 提问者

出来了,不指定列是可以的,它是以select返回的字段同名同类型同符号插入的,如果创建的时候没有指定同名的字段,表会自动新增该字段并插入返回的值,如果指定了同名的字段,则只是普通的插入记录。但是会受指定字段的类型影响,这很好理解,比如返回的是varchar(40),你列定义的时候为varchar(20),则值可能就会少半截。所以定义的时候类型要一致,或者不用指定该列(会插入在表最下面)。
2018-09-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

create...select...问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信