mysql数据库的存储过程创建语句之中需要使用begin表示存储过程要执行的语句从这里开始,在结尾使用end表示存储过程的语句要结束了。而在mysql数据库之中无论是查询还是添加语句都要使用分号去分隔,但是在存储过程之中创建sql语句的时候却被mysql数据库的编译器把分号当做了结束语句,没有end就被检测成语法错误了。
二、解决方法
一般来说上面这个问题都是因为mysql数据库版本所导致的,如果确定语句没有错误的话就要更新版本或者将语句的结束符改成别的符号,只要能够让mysql数据库编译器解析到end就可以了。使用delimiter即可更改sql语句结束符,示例如下:
delimiter // --更改结束符create procedure course_id_name(in cid varchar(20))beginselect namefrom coursewhere id = cidend//delimiter --将结束符换回分号
以上就是关于“mysql数据库存储过程语法报错为什么?原因和解决方法看这里”的全部内容了,想要了解更多python的实用知识和代码示例可以持续关注这个频道,每次更新都会有很多新的知识技术分享给大家。
1、sql语句判断数据库表是否存在:sql:select * from user_all_tables where table_name='tableName'
如果结果为空则表示不存在,如何结果不为空则表示存在;
2、java如何判断数据库表是否存在
可以利用上面的sql,执行获取结果,相应的java代码如下:
String helperName= delegator.getGroupHelperName("com.asiainfo")
SQLProcessor sqlProcessor= new SQLProcessor(helperName)
String sql = "select * from user_all_tables where table_name='"+table+"'"
ResultSet rsTables =sqlProcessor.executeQuery(sql)
if(rsTables.next()){
Debug.logWarning("table:"+table+" exists", module)
}else{
Debug.logWarning("table:"+table+" does not exist", module)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)