`
zhiweiofli
  • 浏览: 515471 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

对比MySQL与SQL SERVER2005的触发器写法

阅读更多

最近给从前的项目做了数据库的移植,发现不同公司的产品,还真是差别甚大啊。

 

下面是原来用在MS SQL2005上的一个触发器:

 

 

CREATE TRIGGER [TG_Update_Current] ON [dbo].[CurrentLocation] 
FOR UPDATE
AS
BEGIN
      INSERT INTO dbo.HistoryLocation
      SELECT c.cl_time,c.lo_phone,c.cl_lng,c.cl_lat
      FROM inserted i,CurrentLocation c
      WHERE i.lo_phone=c.lo_phone
END
go

 

移植到MySQL 5.01上就成这样子了:

 

drop trigger if exists TG_Update_Current ;
delimiter|
createtrigger TG_Update_Current 
after update ON CurrentLocation 
for each row begin
      insert into HistoryLocation(lo_phone,hl_lng,hl_lat,hl_time) 
      select NEW.lo_phone, NEW.cl_lng, NEW.cl_lat, NEW.cl_time
end|
delimiter;

 

对比下,除了语法的差异,最大的不适应还是人性化问题,MYSQL的触发器格式就得依上面得写法,你搞错一个词的位置都报错,对官方的文档参详了许久,才发现错误提示中syntax error就是“格式问题”。

分享到:
评论

相关推荐

    MySQL与SQL的触发器的不同写法

    本文将详细讨论MySQL与SQL Server中触发器的不同写法。 在SQL Server中,触发器的创建使用`CREATE TRIGGER`语句。以下是一个示例,假设我们有两张表`sql_test`和`sql_tem`,它们具有相同的字段结构: ```sql ...

    quartz创建表sql

    SQL Server的语法与Oracle和MySQL有所不同,比如主键的定义、默认值的设定等。确保使用与SQL Server兼容的Quartz表创建脚本。 在实际操作中,Quartz通常会提供一个名为`schema-<db-type>.sql`的文件,其中`...

    mysql和Oracle性能比较.pdf

    在对比MySQL与Oracle数据库性能的讨论中,我们通常会从几个关键方面进行分析,包括但不限于事务处理(INSERT、UPDATE、DELETE)、查询效率(SELECT)、硬件资源利用、SQL语法及优化、存储引擎和架构差异等方面。...

    总结SQLite不支持的SQL语法差异

    ### SQLite与SQL Server之间的SQL语法差异总结 #### 一、`TOP`子句与`LIMIT`子句 在SQL Server中,使用`TOP`子句来限制查询结果的数量,例如: ``` SELECT TOP 10 * FROM [index] ORDER BY indexid DESC; ``` 而在...

    MYSQL的存储过程和函数简单写法

    与触发器相似,存储过程也是一组SQL语句的集合,但关键区别在于触发器是自动触发的,而存储过程是主动调用的。存储过程的优点包括: 1. **模块化**:存储过程将复杂操作封装起来,提高了代码的可读性和可维护性。 2...

    MySQL开发与其他

    包括视图(视图的创建和管理)、JOB(定时任务)、MySQL分区(如何分区...与MySQL的对比)、表设计(良好的表结构设计原则)、索引规划(创建有效的索引策略)、语句写法(编写高效的SQL语句)、存储过程(编写和优化...

    7个数据库SQL项目源码.rar

    - 关系数据库模型:在这些项目中,可能涉及了如MySQL、PostgreSQL或Microsoft SQL Server等关系型数据库管理系统。理解如何创建表、定义字段类型以及设置约束是基础。 2. **SQL查询语言**: - SELECT语句:用于从...

    mysql面试题

    在MySQL面试中,掌握SQL语句是至关重要的。这里我们主要关注的是一个特定的SQL操作:关联更新。关联更新允许我们在一张表中更新字段的值,这些值来源于另一张通过某种关联连接的表。让我们详细解析一下提供的两个SQL...

    Oracle到mysql转换的问题总结.doc

    - 触发器、存储过程、索引和约束等数据库对象的转换也需要考虑其在MySQL中的实现方式。 - 数据库模式和权限管理在两个系统间也有所不同,迁移时需要调整相应的访问策略。 - 表空间和分区在MySQL中可能需要转换为...

    Convert Oracle to Mysql

    2. **SQL语法差异**:比如子查询、事务处理、游标、存储过程的写法在两个系统间有区别。 3. **字符集支持**:确保两个数据库的字符集设置一致,避免编码问题。 4. **权限和安全**:迁移后需要重新设置MySQL的用户...

    SQL update 多表关联更新的实现代码

    这种方式在一些较旧的SQL方言中是有效的,例如在某些版本的SQL Server中。 **方法二(标准SQL写法):** ```sql UPDATE A SET A.c2 = B.c3 FROM A INNER JOIN B ON A.c1 = B.c1; ``` 这种方法遵循了更现代、更标准...

    Oracle到mysql转换的问题总结要点.doc

    2. **SQL语句写法差异**: - Oracle中字符串用单引号包围,而MySQL中可用单引号或双引号。 - MySQL在使用子查询时,如`FROM (SELECT...)`,需要在子查询后添加别名。 - 在删除数据时,MySQL不支持对表使用别名,...

    Oracle与MySQL的几点区别

    ### Oracle与MySQL的区别详解 #### 一、分组查询(GROUP BY)的使用差异 在进行数据分组查询时,Oracle和MySQL之间存在细微但重要的差别。例如,在MySQL中使用`GROUP BY`进行分组查询时,可以直接使用如下语句: ...

    Oracle到mysql转换的问题总结[收集].pdf

    在将Oracle数据库转换为MySQL的过程中,开发者可能会遇到一系列与数据类型、SQL语法和函数差异相关的问题。以下是对这些差异的详细说明: 1. **数据类型转换**: - `NUMBER(p,s)`在Oracle中用于存储浮点数,而...

    如何优化SQL语句提高数据库效率.pdf

    5. 利用数据库的特定功能:不同的数据库系统,如Oracle、SQL Server、MySQL等,有其独特的性能优化工具和函数。充分利用这些工具,比如视图、存储过程、触发器等,可以帮助我们更好地管理和优化数据处理。 6. ...

Global site tag (gtag.js) - Google Analytics