创建t_emp_new后。,打开数据库查看有一个警告,这是干嘛的?

创建t_emp_new后。,打开数据库查看有一个警告,这是干嘛的?

http://img1.sycdn.imooc.com//climg/5d3943a60001c27e19101074.jpg

import mysql.connector.pooling
config={
    "host":"localhost",
    "port":3306,
    "user":"root",
    "password":"abc123456",
    "database":"demo",
    "auth_plugin":"mysql_native_password"
}
try:
    pool=mysql.connector.pooling.MySQLConnectionPool(**config,pool_size=10)
    con=pool.get_connection()
    con.start_transaction()
    cursor = con.cursor()
    sql="CREATE TABLE t_emp_new AS (SELECT * from t_emp)"
    cursor.execute(sql)
    con.commit()
except Exception  as e:
    print(e)

//上面是代码==有什么影响吗

http://img1.sycdn.imooc.com//climg/5d3944010001de3907000525.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好:

新表不存在:

1.复制表结构(数据)到新表:只会复制表数据和表结构,不会有任何约束

create table new_table as (select * from old_talbe);

这种方法会将old_table中所有的内容都拷贝过来,用这种方法需要注意,new_table中没有了old_table中的primary key,Extra,auto_increment等属性,需要自己手动加。

2.只复制表结构到新表:

create table new_table like old_table;

同学可以在数据库上去试验一下。

如果我解决了同学的问题,请采纳!学习愉快^_^。

dh1211 2019-08-09 00:09:44

mac上sql = "CREATE TABLE t_emp_new AS (SELECT * FROM t_emp)",没有主键,但是非空约束还是在的,sql = "CREATE TABLE t_emp_new LIKE t_emp",非空约束和主键都在,所以后者是连带着约束也会给新表添上么,是所有的约束(包括外键)都和原始表一致么?

好帮手乔木 2019-07-25 19:26:36

同学你好:

这里是不是多写了一个键值对呢,同学可以去掉试试。

http://img1.sycdn.imooc.com//climg/5d399190000179dd04320137.jpg

如果我解决了同学的问题,请采纳。学习愉快^_^。

  • 提问者 啊可 #1
    我的是mac系统~而且用了mysql8.0最新的加密方式。 所以要加这一句,其他的学习案例都不会出现这种报错
    2019-07-26 11:21:19
  • 提问者 啊可 #2
    # sql="CREATE TABLE t_emp_new AS (SELECT * from t_emp)"#只会复制表数据和表结构,不会有任何约束new_table中没有了old_table中的primary key,Extra,auto_increment等属性,需要自己手动加 我猜测只是提示我没有主键之类的东西了,那老师,有没有全部复制,包含主键,约束,索引等东西的复制语句呢
    2019-07-26 11:58:54
  • 好帮手乔木 回复 提问者 啊可 #3
    同学你好,老师视频中讲的知识肯定是没有遗漏的,所以mysql中肯定没有这些相关的语句。数据库的相关操作DML,DDL,DCL这三种。按照同学的意思可以先使用nacicat先将数据导出,然后重新搭建表的外键关联试试。mac本的情况确实没有想到,但是同学的问题我们正在查找,我们这个也需要一些时间,请谅解。
    2019-07-26 12:11:23
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师