SP 重名

沉沦 2010-06-24 12:12:01
DELIMITER //
-- 这个地方:因为怕有SP重名现象,所以我create sp之前.怎么检测sp是否存在,如果存在则select 'output message ' 并且不执行下面的create sp语句.
CREATE PROCEDURE XX()
BEGIN
SELECT 'AAA' AS message;
END//
DELIMITER ;



重点是如果存在则select 'output message ' 并且不执行下面的create sp语句.
...全文
53 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
沉沦 2010-06-24
  • 打赏
  • 举报
回复
版主的方法貌似达不到我的需求哦 。

是这样的原因:
我要把这个SP放到别的mysql的database里面去.而我并不知道别人的database里面是否有跟我一样同名的SP,如果我冒然前面加drop procedure if exists spname 会删除别人的SP。。。
所以我要在create SP的时候在前面判断一下..如果有同名的。这不创建自己的SP。。然后就人为的干预了。。。
请斑竹明示··
ACMAIN_CHM 2010-06-24
  • 打赏
  • 举报
回复
mysql> show procedure status like 'XX';
+------+------+-----------+----------------+---------------------+--------------
-------+---------------+---------+----------------------+----------------------+
--------------------+
| Db | Name | Type | Definer | Modified | Created
| Security_type | Comment | character_set_client | collation_connection |
Database Collation |
+------+------+-----------+----------------+---------------------+--------------
-------+---------------+---------+----------------------+----------------------+
--------------------+
| csdn | XX | PROCEDURE | root@localhost | 2010-06-24 10:49:20 | 2010-06-24 10
:49:20 | DEFINER | | latin1 | latin1_swedish_ci |
latin1_swedish_ci |
+------+------+-----------+----------------+---------------------+--------------
-------+---------------+---------+----------------------+----------------------+
--------------------+
1 row in set (0.04 sec)

mysql>



你可以先 drop procedure if exists spname 不管在不在都删除后创建新的。

mysql> drop procedure if exists BB;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>


也可以通过查询系统表来判断是否存在这个存储过程。

mysql> select name from mysql.proc where name='XX';
+------+
| name |
+------+
| XX |
+------+
1 row in set (0.42 sec)

mysql>
rucypli 2010-06-24
  • 打赏
  • 举报
回复
直接执行 有重名自然有报错出来
rucypli 2010-06-24
  • 打赏
  • 举报
回复
直接执行 有重名自然有报错出来
WWWWA 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 m582445672 的回复:]
SQL code
DELIMITER //
-- 这个地方:因为怕有SP重名现象,所以我create sp之前.怎么检测sp是否存在,如果存在则select 'output message ' 并且不执行下面的create sp语句.
CREATE PROCEDURE XX()
BEGIN
SELECT 'AAA' AS message;
END//
DELIMITER ;


……
[/Quote]
在MYSQL中不行,在语言中判断一下吧
zuoxingyu 2010-06-24
  • 打赏
  • 举报
回复

CREATE PROCEDURE B()
BEGIN
IF EXISTS (SELECT 1 FROM mysql.proc WHERE name ='XX') THEN
SELECT 'already exists';
ELSE
PREPARE stmt FROM 'CREATE PROCEDURE XX() SELECT 1 AS message';
EXECUTE stmt;
END IF;
END ;


在存储过程里面再创建存储过程,是不行的。
我的代码执行失败。
沉沦 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 acmain_chm 的回复:]
那就直接执行,如果已存在自然会不执行并有错误信息。
[/Quote]

能在前面加个语句判断,不用mysql的错误提示吗?
ACMAIN_CHM 2010-06-24
  • 打赏
  • 举报
回复
那就直接执行,如果已存在自然会不执行并有错误信息。
ACDSee Pro烈火汉化修正版 安装不会修改主页!! ACDSee Pro和AcdSee的区别就在于多了强大的编辑器和处理功能,轻松处理数码影像,拥有的功能像去除红眼、剪切图像、锐化、浮雕特效、曝光调整、旋转、镜像等等,还能进行批量处理哦! 此版本包含(并可选安装)所有压缩包、多媒体插件、设备检测器、陈列室、幻灯片制作、创建视频和VCD制作组件,以及运行 ACDSee 必须的 VC++ 2005 和 2008 SP1 可再发行组件包、VB/VC 运行库文件。其它同精简版一样,也去除了所有上传插件和所有 CHM 和 HTML 帮助文件,并做了许多优化等等。所有文件安装到同一目录下,简单便捷,绝非官方肥胖版 70 MB 的 MSI 可比! 详细情况如下: * 去除陈列室 * 去除幻灯片制作 * 去除官方自带的 ask.com 工具栏 * 去除“快速开始指南”菜单和文件 * 去除“插件帮助”菜单和文件 * 去除设备检测器 * 去除所有压缩包插件 * 去除多媒体插件 * 去除光盘刻录插件 * 去除 Flickr 插件 * 去除 FTP 上传插件 * 去除 SendPix 插件 * 去除 SmugMug 插件 * 去除 TiVo 插件 * 去除 Zenfolio 插件 * 保留所有图像插件 * 保留重复文件查找器插件 * 加入无损 JPEG 旋转插件 * 安装后就是注册版 * 安装后立即弹出文件关联对话框让您自由选择 * 初次启动时不显示“产品注册”对话框 * 初次启动时不显示“快速开始指南” * 自动启用主界面筛选器,只显示图像文件、隐藏文件和文件夹,不显示媒体和压缩包文件 * 鼠标划过图片,不自动显示缩略图弹出 * 取消“标记项目”设置 * 取消数据库备份提醒 * 时钟格式改为 24 小时制 * 覆盖重名文件时自动重命名 * 此版本兼容任何微软 Windows 32 位与 64 位系统(XP 以上)
Win32文件资源修改、打包工具 [2.0.0.0] ------------------------------------------------- 我们通常会使用工具(如ResourceHacker,Restorator等等)来对可执行文件(*.exe),DLL文件(*.dll),输入法文件(*.ime),控制面板文件(*.cpl)等等WindowsPE文件里面的资源进行修改以达到个性化和美观的目的.但是它们都是手动的,也就是需要自己打开文件后一个个进行修改,然后保存.碰巧系统自动更新以后文件被更新,那就要重复劳动了. 这个工具最初设计的目标,就是为了解决这个问题而出现的. 本工具支持直接打开Win32文件(可执行文件、动态链接库、输入法文件、控制面板),并直观地显示出内部含有的资源,可以用拖放来修改资源,并直接生成修改号的目标文件。您还可以将您的修改打包后导出,让其他人也能使用您的打包。 最后更新:2009年3月1日18:53:52 ------------------------------------------------- * 修改了AVI文件预览的方式,去掉了对COM组件的依赖 * 修改了左侧列表的文件排序,现在使用的是基于自然数的排序,更加容易识别 * 添加当拖动文件到缩略图窗口替换资源时,自动选中拖放目标下的资源项的功能 * 改进文件打开方案,允许打开同名文件 * 改进保存,添加安装SP后的缓存文件删除 * 压缩进度显示更新显示方式,仅显示文件名 * 其它更改 提醒 ------------------------------------------------- 本版本打包文件版本为2.0,不支持打开老版本打包文件 2.0版与1.0版打包文件相比而言,可以打包多个重名的文件。
1 函数依赖闭包计算习题: 1. 设关系模式R(A,B,C,D,E,G),有函数依赖集 F={AB C, BC AD, D E, CG B},求AB的闭包。 解:令X(0)=AB; 左部为AB子集的函数依赖有AB C, 因此X(1)=ABC X(1) X(0),找出左部为ABC子集的函数依赖有BC AD,因此X(2)=ABCD; X(2) X(1),找出左部为ABCD子集的函数依赖有D E , 因此X(3)=ABCDE; X(3) X(2),找出左部为ABCDE子集的函数依赖,得到 X(4) = ABCDE = X(3),所以(AB)F+ =ABCDE 2. 设关系模式:R(Sno, Cno, Grade,Tname,Office),规定每门课只有一个老师任教,每个老师只有一个办公室, 且不重名。 答案:(1)写出R的最小依赖集和候选码 Fm = { (Sno,Cno) Grade,Cno Tname,Tname Office } 候选码是 (Sno,Cno) (2)将R分解成2NF,并说明理由 由于Cno Tname,所以存在非主属性Tname部分函数依赖于 码(Sno,Cno),因此R不属于2NF,将其分解为: R1(Sno, Cno, Grade), R2( Cno,Tname,Office) 显然R1、R2都是2NF (3)将R分解成3NF,并说明理由 很明显,R1已经是3NF。 R2中由于 Cno Tname,Tname Office,存在传递函数依赖, 因此R2不是3NF,将其分解为: R2(Cno,Tname), R3( Tname,Office) R1、R2、R3都是3NF 二 大题 一 在供应商、零件数据库中有以下关系模式: 供应商:S(SNO,SNAME,CITY,STATUS) 零件:P(PNO,PNAME,WEIGHT,COLOR,CITY) 供货:SP(SNO,PNO,QTY) 其中供货关系SP表示某供应商SNO供应了零件PNO,供应数量为QTY。 用SQL语言完成以下操作: 1.求零件P2的总供应量。 求供应红色零件的供应商的名字。 3.把零件P2的重量增加5,颜色改为黄色。 二 教学数据库的如下3个基本表 学生Student(学号Sno,姓名Sname,所在系Sdept,年龄Sage,性别Ssex tob_id_5389 课程Course(课程号Cno,课程名称Cname,先修课号Cpno,学分Ccredit) 学生选课SC(学号Sno,课程号Cno,成绩Grade) 试用SQL语句分别表达下列操作: 查询选修了3号或6号课程的学生的学号 (2) 查询至少选修了一门其直接先行课为8号课程的学生学号与姓名 查询选修了3门以上课程并且成绩均及格的学生学号与其平均成绩 将计算机科学系(CS)全体学生的所有成绩置为零 三 一个车间有多个工人,每个工人有职工号、姓名、年龄、性别、工种; 一个车间生产多种产品,产品有产品号、价格; 一个车间生产多种零件,一种零件也可能为多个车间制造,零件有零件号、 重量、价格; 一种产品由多种零件组成,一种零件也可装配到多种产品中,产品与零件均存入仓库中 ; 厂内有多个仓库,仓库有仓库号、主任姓名、电话; 请画出该系统的ER图,并给出相应的关系模型,要求注明主码和外码,其中主码用下划 线标出,外码用波浪线标出。 类似的,学校有若干系,每个系有若干学生、若干课程,学生选课的数据库。。。 E- R图,关系模型。 ----------------------- 数据库系统原理全文共2页,当前为第1页。 数据库系统原理全文共2页,当前为第2页。
U8 服务器安装步骤 注:安装 U8 服务器前一定先安装数据库及 SP 补丁且服务器计算名称中不可以有特别符号如 " -"且服务器电脑名称同一局域网内不可以重名。 第一步:找到 U8 的安装文件或放入 U8 安装光盘,双击 setup。 exe: 第二步:出现以下界面 ,单击"确立" : 第三步:单击"下一步"按钮 : 第四步 :选中我接受允许协议中的条款 ,单击"下一步" : 等候检测 第五步 :单击"下一步"按钮: 等候中 第六步 :默认用户名及密码无需改正,单击 "下一步 " 按钮 第七步:单击"改正"改正安装路径,单击"确立"达成安装路径改正,单击" 下一步: 第八步:选择经典应用模式 ,单击"下一步 " 第九步:安装器时选择"全产品" 、安装客户端时选择"客户端"单击"下一步" :( 注 :同一 局域网内服务器只好安装一台 ,客户端视使用状况决定安装数目) 第十步:系统环境检测过程 ,单击"检测" : 注 :检测过程中因依据操作系统不一样自动检测出不切合安装要求的缺省级件 ,不切合要求的却省级件库红色字休, 双击经红色字休组件会自动检索以对就组件安装包双击运转安装组件 即可,安装完全部红色字体组件后单击"从头检测""确立" 第十一步 :单击"安装" : 第十二步:选择 是,立刻从头启动计算机 ,单击"达成":(注 :如是安装客户端到此步重启后安装完成) 第十三步 :达成最后配置,数据库名为计算机名, SA 口令为 SQL2005 数据库密码单击"测 试连结 "看到"测试成功 " 字样单击"确立" ,最后单击"达成"按钮:等候配置达成。 第十六步:单击"是 " 按钮,等候初始化数据达成 . 第十七步:安装完成退出安装,安装完成后桌面上会出现两个图标 系统登岸图标 系统管理图标如此刻桌面上出现快捷图标请发送到桌面以下列图:(注 : 假如是安装客户端无系统管理图标 ) U8 服务器安装完成 ----------------------- U8服务器安装手册全文共8页,当前为第1页。 U8服务器安装手册全文共8页,当前为第2页。 U8服务器安装手册全文共8页,当前为第3页。 U8服务器安装手册全文共8页,当前为第4页。 U8服务器安装手册全文共8页,当前为第5页。 U8服务器安装手册全文共8页,当前为第6页。 U8服务器安装手册全文共8页,当前为第7页。 U8服务器安装手册全文共8页,当前为第8页。

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧