日期:2014-05-16  浏览次数:20699 次

最近做oracel移植mysql学到的几个mysql知识点()

一. mysql序列的两种解决方案

1.自增长方式,即 AUTO_INCREMENT

2. 先建一张表来存序列值:

mysql> CREATE TABLE sequence (id INT NOT NULL);
mysql> INSERT INTO sequence VALUES (0);

再通过执行以下语句来获取下一个序列值:

mysql>
UPDATE sequence SET id=LAST_INSERT_ID(id+1);
mysql> SELECT LAST_INSERT_ID();

mysql会保证last_insert_id()在并发访问的时候不会出现问题。

 

我选择了第一种,原因是简单方便测试,更重要的原因是懒   ^_^

 

 

二. 查询系统时间的几个方法

sysdate()、now()、CURRENT_TIME()、CURRENT_DATE()、CURRENT_TIMESTAMP()

mysql> select sysdate();
+---------------------+
| sysdate()           |
+---------------------+
| 2012-07-26 16:10:45 |
+---------------------+
1 row in set

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2012-07-26 16:10:49 |
+---------------------+
1 row in set

mysql> SELECT CURRENT_TIME(),CURRENT_DATE(),CURRENT_TIMESTAMP();
+----------------+----------------+---------------------+
| CURRENT_TIME() | CURRENT_DATE() | CURRENT_TIMESTAMP() |
+----------------+----------------+---------------------+
| 16:11:04       | 2012-07-26     | 2012-07-26 16:11:04 |
+----------------+----------------+---------------------+
1 row in set


 

三、编码问题

当遇到 1366 错误时,有两种情况

1.查看mysql的数据库的编码是不是 UTF8。

2.查看创建表时的SQL,看编码是不是UTF8, 比如执行 mysql> show create table tableName 

 

备注:我用的是navicat的图形化操作工具,还是中文版 ^_^ ,oracle10g  ---> mysql5.1