select into ...from... 提示 Undeclared variable.....错误的解决办法

本文介绍了一种在MySQL中复制表结构及数据的有效方法。当尝试使用SELECT INTO FROM语句时遇到错误,文中提供了一个替代方案:通过CREATE TABLE AS SELECT (CTAS) 的方式来实现表的快速复制,并附带一个具体实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载:https://blog.youkuaiyun.com/bestcleaner/article/details/52994469

今天在使用 SELECT INTO FROM 创建mysql数据表的时候,运行相关 sql 语句的时候却一直返回 [Err] 1327 - Undeclared variable: …… 这种错误,实在不解,经过查询关资料才知道,原来 mysql 数据库是不支持 SELECT INTO FROM 这种语句的,但是经过研究是可以通过另外一种变通的方法解决这个问题的,下面就来说说解决这个错误的办法吧!

进过搜索相关资料以及实验结果证实,可以使用

Create table Table2 (Select * from Table1);
  •  

这种语句代替

SELECT vale1, value2, value3 into Table2 from Table1;
  • 下面看一个本人实际操作中的例子吧!

create table newusers(SELECT username,password,sex,age,role from users where username like 'z%'); 
 

这个是关联两个表得出一个查询结果,然后将结果插入到一个新创建的表 newusers中。

CREATE TABLE `shoppinglist` ( `Sid` bigint NOT NULL AUTO_INCREMENT, `SUid` bigint DEFAULT NULL, `Snumber` int NOT NULL, `Sstate` enum('已结账','未结账') NOT NULL, `Sprice` decimal(10,0) NOT NULL, `SGid` bigint DEFAULT NULL, PRIMARY KEY (`Sid`), KEY `shoppinglist_ibfk_1` (`SUid`), KEY `shoppinglist_ibfk_3` (`SGid`), CONSTRAINT `shoppinglist_ibfk_1` FOREIGN KEY (`SUid`) REFERENCES `user` (`Uid`) ON DELETE SET NULL ON UPDATE SET NULL, CONSTRAINT `shoppinglist_ibfk_3` FOREIGN KEY (`SGid`) REFERENCES `goods` (`Gid`) ON DELETE SET NULL ON UPDATE SET NULL ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci CREATE TABLE `goods` ( `Gid` bigint NOT NULL AUTO_INCREMENT, `GMid` bigint DEFAULT NULL, `Gnumber` bigint NOT NULL, `Gstate` enum('已上架','已下架') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, `Gprice` decimal(10,0) NOT NULL, `Gname` char(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, `Gtype` enum('食品','服饰','日用品','家电','电子产品','书籍') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, PRIMARY KEY (`Gid`), KEY `goods_ibfk_1` (`GMid`), CONSTRAINT `goods_ibfk_1` FOREIGN KEY (`GMid`) REFERENCES `merchant` (`Mid`) ON DELETE SET NULL ON UPDATE SET NULL ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci DELIMITER $$ CREATE /*[DEFINER = { user | CURRENT_USER }]*/ TRIGGER `gwsc`.`set-shoppinglist-Sprice` BEFORE INSERT ON `gwsc`.`shoppinglist` FOR EACH ROW BEGIN SELECT Gprice INTO NEW.Sprice FROM goods WHERE Gid=NEW.SGid; END$$ DELIMITER ; DELIMITER $$ CREATE /*[DEFINER = { user | CURRENT_USER }]*/ TRIGGER `gwsc`.`set-shoppinglist-Sprice` BEFORE INSERT ON `gwsc`.`shoppinglist` FOR EACH ROW BEGIN SELECT Gprice INTO NEW.Sprice FROM goods WHERE Gid=NEW.SGid; END$$ DELIMITER ;DELIMITER $$ CREATE /*[DEFINER = { user | CURRENT_USER }]*/ TRIGGER `gwsc`.`set-shoppinglist-Sprice` BEFORE INSERT ON `gwsc`.`shoppinglist` FOR EACH ROW BEGIN SELECT Gprice INTO NEW.Sprice FROM goods WHERE Gid=NEW.SGid; END$$ DELIMITER ;错误代码: 1327 Undeclared variable: NEW,错误原因
最新发布
06-25
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值