解决mysql 修改表记录 1093错误
2013-03-22 19:40
239 查看
1.需求 :
已知表信息如下 :
表名 :frjg
表结构:
需求如下:需要将表记录中各自的 jgmc 字段值赋给各自的 jgjc
2.解决办法:
错误实现方法:
执行SQL命令,报错。错误信息为
正确实现方法,需要建立一张中间表,中间表的内容和frjg表完全相同,之后进行修改frjg表,中间和frjg表之间存在“主外键关系”(并不存在这种关系):
上边的方法是可以实现的,但对于上述问题,还有一种更简单的解决办法,一条sql语句搞定(上述方法可以误导了大家,灰常抱歉,现在改正错误) :
update frjg SET jgjc = jgmc WHERE 1;
已知表信息如下 :
表名 :frjg
表结构:
DROP TABLE IF EXISTS `frjg`; CREATE TABLE IF NOT EXISTS `frjg` ( `id` int(11) NOT NULL AUTO_INCREMENT, `jgbh` varchar(3) CHARACTER SET utf8 NOT NULL COMMENT '法人机构编号', `jgmc` varchar(50) CHARACTER SET utf8 NOT NULL COMMENT '机构名称', `jgm` varchar(8) CHARACTER SET utf8 NOT NULL COMMENT '机构码', `htqssj` date NOT NULL COMMENT '合同起始时间', `htyxsj` date NOT NULL COMMENT '合同有效时间', `dxfsl` int(11) NOT NULL COMMENT '短信发送总量', `dxsyl` int(11) NOT NULL COMMENT '短信剩余量', `mbkhl` int(11) NOT NULL COMMENT '目标客户量', `cjsj` datetime NOT NULL COMMENT '创建时间', `lastactive` datetime NOT NULL COMMENT '最后一次操作时间', `xmmc` varchar(50) CHARACTER SET utf8 NOT NULL COMMENT '项目名称', `cjr` varchar(50) CHARACTER SET utf8 DEFAULT NULL COMMENT '创建人', `state` int(11) NOT NULL DEFAULT '1' COMMENT '法人机构当前状态,0:正常,1:关闭', `weight` int(11) DEFAULT '0' COMMENT '权重,当生育量小时,判断分给谁', `spbz` int(11) DEFAULT '0' COMMENT '审批标准,当大于此标志时,任务挂起,短信通知', `jgjc` varchar(50) DEFAULT NULL COMMENT '机构简称', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=121 ; -- -- 转存表中的数据 `frjg` -- INSERT INTO `frjg` (`id`, `jgbh`, `jgmc`, `jgm`, `htqssj`, `htyxsj`, `dxfsl`, `dxsyl`, `mbkhl`, `cjsj`, `lastactive`, `xmmc`, `cjr`, `state`, `weight`, `spbz`, `jgjc`) VALUES (1, '001', '省管理中心', '27000099', '2012-08-29', '2014-09-01', 200000, 200000, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (2, '002', '临渭区联社管理中心', '27050199', '2012-08-29', '2014-09-01', 200000, 199973, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (3, '003', '新城区联社管理中心', '27011399', '2012-08-29', '2014-09-01', 200000, 199954, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (4, '004', '碑林区联社管理中心', '27010199', '2012-08-29', '2014-09-01', 200000, 199977, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (5, '005', '灞桥联社管理中心', '27010499', '2012-08-29', '2014-09-01', 200000, 199975, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (6, '006', '雁塔联社管理中心', '27010299', '2012-08-29', '2014-09-01', 200000, 199871, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (7, '007', '未央区联社管理中心', '27010399', '2012-08-29', '2014-09-01', 200000, 199928, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (8, '008', '莲湖联社管理中心', '27010599', '2012-08-29', '2014-09-01', 200000, 199960, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (9, '009', '临潼联社管理中心', '27010699', '2012-08-29', '2014-09-01', 200000, 199990, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (10, '010', '西安市阎良区联社管理中心', '27010799', '2012-08-29', '2014-09-01', 200000, 199978, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (11, '011', '长安区信用联社管理中心', '27010899', '2012-08-29', '2014-09-01', 200000, 199956, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (12, '012', '周至联社管理中心', '27011099', '2012-08-29', '2014-09-01', 200000, 199995, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (13, '013', '高陵联社管理中心', '27011199', '2012-08-29', '2014-09-01', 200000, 199985, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (14, '014', '蓝田联社管理中心', '27011299', '2012-08-29', '2014-09-01', 200000, 199949, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (15, '015', '户县管理中心', '27010999', '2012-08-29', '2014-09-01', 200000, 199987, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (16, '016', '金台区信用联社管理中心', '27030299', '2012-08-29', '2014-09-01', 200000, 199957, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (17, '017', '渭滨信用联社管理中心', '27030199', '2012-08-29', '2014-09-01', 200000, 199981, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (18, '018', '咸阳市渭城区联社管理中心', '27040299', '2012-08-29', '2014-09-01', 200000, 199987, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL), (19, '019', '咸阳市秦都区联社管理中心', '27040199', '2012-08-29', '2014-09-01', 200000, 199979, 10000, '2012-07-26 00:00:00', '2012-08-08 15:38:00', 'test2', 'zichen', 0, 0, 0, NULL);
需求如下:需要将表记录中各自的 jgmc 字段值赋给各自的 jgjc
2.解决办法:
错误实现方法:
update frjg set frjg.jgjc=(select jgmc from frjg f where f.id=frjg.id ) where 1
执行SQL命令,报错。错误信息为
#1093 - You can't specify target table 'frjg' for update in FROM clause
正确实现方法,需要建立一张中间表,中间表的内容和frjg表完全相同,之后进行修改frjg表,中间和frjg表之间存在“主外键关系”(并不存在这种关系):
create table tmp as (select * FROM frjg WHERE 1 ); update frjg SET jgjc = (SELECT jgmc FROM tmp WHERE frjg.id=tmp.id ) WHERE 1; drop table tmp;
上边的方法是可以实现的,但对于上述问题,还有一种更简单的解决办法,一条sql语句搞定(上述方法可以误导了大家,灰常抱歉,现在改正错误) :
update frjg SET jgjc = jgmc WHERE 1;
相关文章推荐
- mysql 修改密码后的错误解决
- mysql 1093 错误解决方法
- 解决ACCESS数据库修改备注类型数据时提示的“所有记录中均未找到搜索关键字”错误。
- windows下修改mysql的root用户的密码,解决1045错误
- sqlserver2008查看表记录或者修改存储过程出现目录名无效错误解决方法
- 64位win7下使用C_API编写mysql程序的错误及解决办法记录
- sqlserver2008查看表记录或者修改存储过程出现目录名无效错误解决方法
- 安装mysql后修改密码后也进不去的错误与解决办法
- 解决mysql的1045错误,修改root密码
- mysql无法删除修改记录1755错误
- Mysql修改密码,远程登录,ERROR 1044 (42000)错误解决办法
- MySQL游标修改记录——解决最后一行重复的问题
- 解决使用records = store.getModifiedRecords(),records.length 长度错误,得到上次修改记录。commitChanges()
- 错误记录:使用了mysql_affected_rows修改方法的返回值判断要>0
- mysql中错误:1093-You can’t specify target table for update in FROM clause的解决方法
- Linux下mysql密码忘记修改办法,解决mysql登陆1045错误
- mysql中错误:1093-You can’t specify target table for update in FROM clause的解决方法
- mysql 修改密码忘记使用password函数导致后面无法连接,解决方法记录
- Mysql 服务 1067 错误 的解决方法:修改mysql可执行文件路径
- 修改记录字段值时错误Row cannot be located for updating的解决方法