2 ilove csdn110 ilove_csdn110 于 2016.02.03 01:22 提问

MySql命令行下创建存储过程的语法错误 1C

delimiter //
create procedure findEmp()
begin
select *from emp;
end //

在当前数据库下查询表emp,这么简单的语句为啥我死活创建不成功?哪里出错啊?
以下是错误提示:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'proce
dure findEmp()
begin
select *from emp;

MySql版本是4.1,emp表当然存在,我是按照书本上的语法敲出来的.

5个回答

caozhy
caozhy   Ds   Rxr 2016.02.03 07:09
 delimiter //
create procedure findEmp()
begin
select * from emp;
end  
//

加上换行和空格再试试看
看你连的数据库是不是正确的,有没有emp表
报什么错,贴出来。

Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.03 08:12

不在命令行下能创建成功么

gary16
gary16   2016.02.03 11:17

end后没分号吧

qq_23663693
qq_23663693   2016.02.03 15:06

USE [master] ----------数据库名
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[findEmp]----存储过程名
AS
begin
select * from dbo.spt_values ----表名
end

qq_23663693
qq_23663693   2016.02.03 15:22

看错了,以为是sql server 呢,‘//’代表结束的意思,如果findEmp表存在,这段命令没有错,:
delimiter //
create procedure findEmp()
begin
select * from emp;
end //

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
MySQL数据库定义存储过程总是报语法错误的解决方法
存储过程是数据库的重要工具,它的作用相当于高级编程语言中的函数,一旦定义好了,在后续操作中就可以直接调用,无需再进行编译。定义存储过程的方法有很多,不同的数据库语法也各不相同,这里不再赘述。我要说的是一种语法错误的解决方法。假设现在有一个课程数据库,数据库课程表内容如下:现在我想编写一个存储过程,输入是课程编号,输出是课程名称。编写的代码如下:create procedure course_id_...
mysql 命令行创建存储过程
创建前用delimiter // 然后是你的创建存储过程的语句 最后用delimiter ; 恢复原来默认的分割符
图解MySql命令行创建存储过程
一 操作实例 首先登录mysql; 使用source命令,从命令行执行sql脚本,创建表; 创建第一个存储过程; 事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码; 调用一下,成功了; 创建一个带输出参数的存储过程,返回book表的记录数;创建成功; 如下
mysql 存储过程,游标和错误提示
SQL语句中的错误提示 在存储过程中处理SQL语句可能导致一条错误消息。例如,向一个表中插入新的行而主键值已经存在,这条INSERT语句会导致一个出错消息,并且MySQL立即停止对存储过程的处理。每一个错误消息都有一个唯一代码和一个SQLSTATE代码。例如,SQLSTATE 23000属于如下的出错代码: Error 1022, "Can't write;duplicate(重复
mysql 创建存储过程报错
mysql5以上的版本都支持存储过程 我先创建了一张表: create table tb_user ( user_id int primary key, user_name varchar(20) not null ); 默认情况下,创建存储过程会报错,如下: mysql> create procedure pr_gen_users() -> begin
MYSQL中存储过程中总是报错
MYSQL中存储过程中总是报错 我照着例子
MySQL中存储过程无限报错的问题(delimiter)
今天学习MySQL的存储过程的时候,在创建存储过程的时候无限报错,我用的是MySQL的5.6.x版本 后来才发现不能把delimiter语句写完后删除再写create procedure语句(我用了小写表达,免得有人读的时候看大写单词费劲)我天真的以为delimiter语句会被MySQL这个程序存储简单示例如下:delimiter // #将delim
MYSQL命令行创建存储过程分号的解决方法
1、总所周知,mysql的命令行执行每一条命令是以分号结尾的,也就是说识别是否为一条命令,是根据分号决定的。        然而存储过程中设计多条语句,很可能出现多个分号,所以直接把存储过程复制到命令号一般都会失败 2、解决方法是需要加一个分隔符,让命令行知道整个存储过程的代码是完整的一块代码,代码如下 DELIMITER // CREATE
使用navicat的命令行模式创建修改表和存储过程
1.创建函数语法  mysql>delimiter //  mysql>create function 函数名(参数1 参数1类型,...) returns 返回类型       >begin    >return 返回值;    >end    >//  mysql>select 函数名(参数1, 参数2, 。。。);    >//
linux中mysql如何创建存储过程
创建存储过程的完整命令: CREATE PROCEDURE pro1() begin     declare b int default 0; end; MySQL中运行存储过程创建语句错误结果: root@db1>CREATE PROCEDUREpro1()     -> begin     ->    declare b int default