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

本文详细介绍了MySQL中序列的两种解决方案,包括自增长方式和通过表存储序列的方法,并展示了如何获取序列值。同时,阐述了查询系统时间的不同方法,包括sysdate()、now()等函数的应用。此外,文章还讨论了编码问题,特别是解决1366错误的两种常见方法。

一. 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

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值