本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7594107
建立时间:2006年5月29日




[MySQL]MySql之5.0使用心得
软件技术

lhwork 发表于 2007/1/11 9:04:28

   前两天很是使用了一把MySql,版本是5.0.27,对字符集的设置、存储过程的建立、触发器的建立颇有心得,现与大家分享实例。1、字符集的设置   a、首先安装MySql5.0.27,注意!是setup安装,不是免安装版。(如何设置免安装版的字符集俺还不会)   b、运行MySql Server Instance Configuration Wizard,在please select the default character set页面选择Menual Selected Default Character Set / Collation,并在Character Set:下拉框中选择gb2312(经测试,从MS SQL Server中导入中文字符是成功的。)   c、然后启动MySql服务即可!2、存储过程的建立   a、为了方便执行sql语句,我建议安装MySQL GUI Tools 5.0的可视化工具,十分方便!   b、打开MySQL GUI Tools 5.0的MySql Query Browser工具,连接localhost,用户名为root,密码为空。   c、选择File-〉New Script Tab   d、在Script 1的Tab页中输入以下语句,选择Execute按钮执行即可。-- 建立数据库 sample ,并使用它create database sample;use sample;-- 建立一个表create table Msg (  MsgServiceId     integer,  MsgTypeId        integer,  MsgQueuedAt    datetime,  MsgParam1        varchar(60)  NULL,  MsgId     int NOT NULL auto_increment,         -- 自增  PRIMARY KEY  (`MsgId`)                              -- 主键)DEFAULT CHARSET=gb2312;                        -- 设置表的字符集-- 建立索引create unique index BCG_Msg_idx2 on Msg ( MsgTypeId,  MsgId );-- 建立存储过程DELIMITER |  --必须有此句 CREATE PROCEDURE BCG_QueueMsg   (     in v_MsgServiceName varchar(30),     in v_MsgParam1      varchar(60)   )BEGIN      DECLARE v_MsgTypeId integer;      DECLARE v_QueuedAt  timestamp;      set v_QueuedAt = now();      SELECT MsgServiceId INTO v_MsgServiceId FROM BCG_MsgService where MsgServiceName=v_MsgServiceName;      INSERT INTO Msg (        MsgTypeId,         MsgQueuedAt,         MsgParam1      )      VALUES (        v_MsgTypeId,        v_QueuedAt,         v_MsgParam1      );END;|DELIMITER ;3、触发器的建立   a、选择File-〉New Script Tab   b、在Script 2的Tab页中输入以下语句,选择Execute按钮执行即可。-- 使用sample数据库use sample;-- 建立测试表CREATE TABLE Orders ( OrderID int NOT NULL auto_increment , CustomerID nchar (5)  NULL , EmployeeID int NULL , OrderDate datetime NULL , RequiredDate datetime NULL , ShippedDate datetime NULL , ShipVia int NULL , Freight float NULL , ShipName nvarchar (40) NULL , ShipAddress nvarchar (60)  NULL , ShipCity nvarchar (15)  NULL , ShipRegion nvarchar (15)  NULL , ShipPostalCode nvarchar (10)   NULL , ShipCountry nvarchar (15)   NULL,  PRIMARY KEY  (`OrderID`))DEFAULT CHARSET = gb2312;-- 建立触发器 TESTDBINSERT  ,当有记录插入表时,同时插入Msg表一条记录DELIMITER |CREATE TRIGGER TESTDBINSERT  AFTER  INSERT ON ORDERSFOR EACH ROWBEGIN    -- 把新插入orders表中新记录的OrderID字段的值赋给ID,NEW表示当前插入的记录项内容    SET @ID = NEW.OrderID;      -- 获得当前时间    SET @v_QueuedAt = NOW();    -- 把以上得到的值插入Msg表中    INSERT INTO Msg (        MsgTypeId,        MsgQueuedAt,         MsgParam1    ) VALUES (        1,        @v_QueuedAt,         @ID    );END;|DELIMITER ;   c、这时在表orders中插入一条记录,则Msg表中也增加一条记录。最后说明MySQL GUI Tools 5.0是一个十分好用的工具,还有可以从其他数据库中导入数据的GUI工具,希望大家多多研究。


阅读全文(3239) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.289 second(s), page refreshed 144757338 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号