Time of Update: 2018-12-05
昨晚還好好的,今天一早起來就報錯,很煩人。[root@chinahealthreformmodel /]# ps -a|grep mysql 9582 pts/1 00:00:00 mysqld_safe 9693 pts/1 00:00:00 mysqld[root@chinahealthreformmodel /]# kill -9 9582[root@chinahealthreformmodel /]# kill -9 9693[1]+ Killed
Time of Update: 2018-12-05
預存程序經常需要返回多個結果集。Mysql中直接用select即可返回結果集。而oracle則需要使用遊標來返回結果集。這一點Mysql相對比較方便,如下代碼即可實現輸出兩個結果集: Sqlcode 2-1:CREATE PROCEDURE test_proc_multi_select()BEGIN select * from testproc; select * from testproc where
Time of Update: 2018-12-05
一個完整的mysql讀寫分離環境包括以下幾個部分:應用程式clientdatabase proxydatabase叢集在本次實戰中,應用程式client基於c3p0串連後端的database proxy。database
Time of Update: 2018-12-05
先說一個常用的例子:1,擷取目前時間,並格式化DECLARE i INT;SET i=date_format(now(),'%Y%m%d');ADDTIME (date2 ,time_interval ) //將time_interval加到date2CONVERT_TZ (datetime2 ,fromTZ ,toTZ ) //轉換時區CURRENT_DATE ( ) //當前日期CURRENT_TIME ( ) //目前時間CURRENT_TIMESTAMP ( ) //目前時間戳DATE
Time of Update: 2018-12-05
1、複製表結構及資料到新表CREATE TABLE 新表 SELECT * FROM 舊錶 這種方法會將oldtable中所有的內容都拷貝過來,當然我們可以用delete from newtable;來刪除。 不過這種方法的一個最不好的地方就是新表中沒有了舊錶的primary key、Extra(auto_increment)等屬性。需要自己用"alter"添加,而且容易搞錯。 2、只複製表結構到新表 CREATE TABLE 新表 SELECT * FROM 舊錶 WHERE 1=2
Time of Update: 2018-12-05
原文連結:http://imysql.com/node/298 之前寫過了 如何通過 PHP 取得 MySQL procedure 結果,不過按照那種方法還不能適應多結果集的情況。所謂的多結果集,就是指在預存程序中,有多次 SELECT 查詢,行程多個結果集。解決的辦法還是用 mysqli 提供的函數 mysqli_multi_query() 來做,如下例 $mysqli = new mysqli("localhost", "root", "", "test");if
Time of Update: 2018-12-05
原表:id fenlei time1 分類1 201303162 分類2 201303163 分類3 201303174 分類2 201303175 分類3 20130318需要查上表,得到結果插入新表新表結構:id fenlei_1 fenlei_2 fenlei_3 date1 1 1 0 2
Time of Update: 2018-12-05
查了很多mysql資料表去重的資料,還是建立暫存資料表的方法靠譜//去重 $sql1 = "CREATE TEMPORARY TABLE tmp_table SELECT * FROM tablename group by `name`"; $pdo1->exec($sql1); $sql2 = "drop TABLE tablename; $pdo1->exec($sql2); $sql3 = "CREATE TABLE tablename
Time of Update: 2018-12-05
SUBSTRING_INDEX(str,delim,count) mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2); -> 'www.mysql'mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2); ->
Time of Update: 2018-12-05
下載:wget http://sourceforge.net/projects/mysql-python/files/latest/downloacd /root/MySQL-python-1.2.4b4tar -zxvf MySQL-python-1.2.4b4.tar.gz# vi site.cfgembedded = Falsethreadsafe = Truestatic = Falsemysql_config = /usr/local/mysql/bin/mysql_config#
Time of Update: 2018-12-05
關於“select count(*)”和“select count(col)”的效率比較(參考http://hi.baidu.com/wrjgg/item/f5b823b4e1dca79918469729): 1.任何情況下SELECT COUNT(*) FROM tablename是最優選擇; 2.盡量減少SELECT COUNT(*) FROM tablename WHERE COL = 'value’ 這種查詢;
Time of Update: 2018-12-05
昨天寫一段程式需要寫db,調用了mysql的c api,編譯發生了連結錯誤:/usr/lib/mysql/libmysqlclient.a(ssl.o):(.gnu.linkonce.d.__vt_Q25yaSSL7Message+0x8): undefined reference to `__pure_virtual'……Makefile中的連結:…… -L/usr/lib/mysql -lmysqlclient第一反應是安裝的mysql
Time of Update: 2018-12-05
在linux suse enterprise 10下安裝mysql,到mysql官網(現在是oracle的)上去下載對應版本的rpm包http://www.mysql.com/downloads/mysql/#downloads安裝完成之後,rpm -qa可以看到已經安裝的mysql包,我在這裡安裝了server、client和devel三個包。1. 安裝完成之後的第一件事情是為root使用者佈建密碼,usr/bin/mysqladmin -u root
Time of Update: 2018-12-05
Mysql中,單個Store Procedure(SP)不是原子操作,而oracle則是原子的。如下的預存程序,即使語句2失敗,語句1仍然會被commit到資料庫中:Sql code 1-1:create table testproc(id int(4) primary key, name varchar(100));CREATE PROCEDURE test_proc_ins(IN i_id INT,IN i_name VARCHAR(100))BEGIN INSERT
Time of Update: 2018-12-05
在oracle中,sequence提供多表多欄位可共用一個不重複值。Mysql中存在自增列,基本可以滿足PK的要求。但自增列存在限制:a.只能用於表中的一個欄位,一張不能同時存在兩個以上的自增列;b.自增列必須被定義為key(PK或FK);c.自增列不能被多個表共用;d.當insert語句不包括自增欄位或將其值設定為NULL時,該值會自動填上。 在不要求欄位順序遞增的情況下,可以在Mysql中實現序列: Sqlcode 5-1:
Time of Update: 2018-12-05
資料庫MySql的複習(一)
Time of Update: 2018-12-05
mysql變數使用總結 set語句的學習:使用select定義使用者變數的實踐將如下語句改成select的形式: set @VAR=(select sum(amount) from penalties);我的修改: select @VAR:=(select sum(amount) from penalties);我這樣改,雖然是可以的。但是,對比的書中的答案,發現這樣的方式太蹩腳了。說明沒有很好地理解select定義變數的本質。在select中,發現有一個使用者變數,如果沒有定義,那麼就會初始化
Time of Update: 2018-12-05
在MySQL資料庫中匯出整個資料庫: 1.匯出整個資料庫 mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔案名稱 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.匯出一個表 mysqldump -u 使用者名稱 -p 資料庫名 表名> 匯出的檔案名稱 mysqldump -u wcnc -p smgp_apps_wcnc users>
Time of Update: 2018-12-05
Linux環境下預設登入mysql之後show variables like '%character%', 出現 mysql> show variables like '%character%'; -------------------------- ---------------------------- | Variable_name | Value
Time of Update: 2018-12-05
解決The InnoDB feature is disabled; you need MySQL built with InnoDB在MYSQL下建立事務,預存程序,觸發器,主外健的時候,資料表的類型必須是InnoDB的,但有的時候MYSQL不支援這種類型,會出現一種錯誤!MySQL出現如下語句:The InnoDB feature is disabled; you need MySQL built with InnoDB to have it working;是mysql設定檔禁掉了這個選項!