gcc 编译 mysql 出错,编译报错与更新数据库错误

一、编译报错

问题描述:

/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/libjsoncpp.so: undefined reference to `memcpy@GLIBC_2.14'。

原因分析:首先明确该问题是GCC版本不同导致的。不同指的是编译库的GCC版本和编译应用程序的GCC版本不同。

libjsoncpp.so是在虚拟机上编译的,GCC版本是4.4.6,而在服务器上编译程序时用的GCC版本是4.4.7,存在不兼容。

解决方式:在服务器端编译jsoncpp库。

二、更新数据库错误

问题描述:

执行sql语句"update corp set XhtCorpID=corpid where id=(select max(id) from corp);"时,报如下错误:

mysql_query error: 1093 You can't specify target table 'corp' for update in FROM clause。

原因分析:mysql不允许update目标表和子查询里面的表为同一张表。

解决如下:子查询sql可以改为双层的子查询。

"update corp set XhtCorpID=corpid  where id=(select max(id) from (select id from corp));"

运行上述sql依然报如下的错:

mysql_query error: 1248 Every derived table must have its own alias。

派生的表要有别名。更改语句如下:

"update corp set XhtCorpID=corpid  where id=(select max(id) from (select id from corp) as tmp);"

即:tmp就是(select id from corp) 的别名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值