Oracle到mysql转换的问题总结(8)

2019-08-29 00:08

删除索引

drop index idx_id on table1;

alter table table1 drop index ind_id;

联合字符或者多个列(将列id与\和列name和\连接)

select concat(id,':',name,'=') from students;

limit(选出10到20条)<第一个记录集的编号是0>

select * from students order by id limit 9,10;

分析索引效率

方法:在一般的SQL语句前加上explain; 分析结果的含义: 1)table:表名;

2)type:连接的类型,(ALL/Range/Ref)。其中ref是最理想的; 3)possible_keys:查询可以利用的索引名; 4)key:实际使用的索引;

5)key_len:索引中被使用部分的长度(字节); 6)ref:显示列名字或者\(不明白什么意思);

7)rows:显示MySQL认为在找到正确结果之前必须扫描的行数; 8)extra:MySQL的建议;

Mysql驱动和spring配置、config.properties修改

配置修改

hibernate.dialect=org.hibernate.dialect.MySQLDialect

datasource.driverClassName=com.mysql.jdbc.Driver

datasource.url=jdbc:mysql://172.19.12.15:3306/b2b2c 可以设定链接的字符集,防止乱码:

jdbc:mysql://localhost:3306/ssh?useUnicode=true&characterEncoding=UTF-8

mysql maven坐标

mysql

mysql-connector-java 5.1.6

各种数据库及其数据源配置参数

数据库 Oracle

驱动程序 oracle.jdbc.driver.OracleDriver URL jdbc:oracle:thin:@localhost:1521:orcl

数据库 DB2

驱动程序 com.ibm.db2.jdbc.app.DB2Driver URL jdbc:db2://localhost:5000/testDB

数据库 SQL Server

驱动程序 com.microsoft.jdbc.sqlserver.SQLServerDriver

URL jdbc.microsoft:sqlserver://localhost:1433;DatabaseName=testDB

数据库 Sybase

驱动程序 com.sybase.jdbc.SybDriver

URL jdbc:sybase:Tds:localhost:5007/testDB

数据库 Informix

驱动程序 com.informix.jdbc.IfxDriver

URL jdbc:informixsqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver

数据库 Mysql

驱动程序 com.musql.jdbc.Driver

URL jdbc:mysql://localhost:3306/testDB

数据库 PostgreSQL

驱动程序 org.postgresql.Driver

URL jdbc:postgresql://localhost/testDB

数据库 HSQLDB

驱动程序 org.hsqldb.jdbcDriver

URL jdbc:hsqldb:hsql://llocalhost:9902

函数和存储过程无法建立:

ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) 解决方法:

set global log_bin_trust_function_creators=TRUE;

MySQL DATE_ADD() 函数

DATE_ADD() 函数向日期添加指定的时间间隔。

语法

DATE_ADD(date,INTERVAL expr type) date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。 type 参数可以是下列值: Type 值 MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR SECOND_MICROSECOND MINUTE_MICROSECOND MINUTE_SECOND HOUR_MICROSECOND HOUR_SECOND HOUR_MINUTE DAY_MICROSECOND DAY_SECOND DAY_MINUTE DAY_HOUR YEAR_MONTH 实例

假设我们有如下的表: OrderId 1 ProductName 'Computer' OrderDate 2008-12-29 16:25:46.635 现在,我们希望向 \添加 2 天,这样就可以找到付款日期。 我们使用下面的 SELECT 语句:

SELECT OrderId,DATE_ADD(OrderDate,INTERVAL 2 DAY) AS OrderPayDate FROM Orders

结果: OrderId OrderPayDate 1

2008-12-31 16:25:46.635 Mysql5.1 建表错误记录

1.分区字段必须包含在主键中

2 mysql单表多timestamp报错#1293 - Incorrect table definition; there can be only one TIMESTAMP column with C解决【tw_ptl_accesslog】

简述:一个表中不能包含多个timestamp字段,特别是设置为now。

一个表中出现多个timestamp并设置其中一个为current_timestamp的时候经常会遇到 #1293 - Incorrect table definition; there can be only oneTIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATEclause www.2cto.com

原因是当你给一个timestamp设置为on updatecurrent_timestamp的时候,其他的timestamp字段需要显式设定default值

但是如果你有两个timestamp字段,但是只把第一个设定为current_timestamp而第二个没有设定默认值,mysql也能成功建表,但是反过来就不行... www.2cto.com

N.B:上面的解释是网上的,实际上on updatecurrent_timestamp(在navicat中文版中为“刷新当前时间戳计时”选项)只能设置一个,或者不设置都可以,不能同时设置2个及以上。

Mysql中默认为系统时间使用 timestamp default now(); 如果分区字段使用timestamp类型,使用partition by range (UNIX_TIMESTAMP(LOGIN_DATE))

此时间类型为datetime,使用partition by range (to_days (LOGIN_DATE)) 在accesslog表建立过程中就存在此冲突。


Oracle到mysql转换的问题总结(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:卫生系统面试题及参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: