資料庫
1752800 會員
5427 線上
108789 解決方案
發表新文章

希望由cron定時變更Mysql裡的一筆資料

 
watermelonyu
教授

希望由cron定時變更Mysql裡的一筆資料

各位好

我希望叫cron定時改變我資料庫Mysql裡的一筆資料,請問要如何寫?



--

-- Table structure for table `content_manager`

--



CREATE TABLE `content_manager` (

`content_id` int(11) NOT NULL auto_increment,

`categories_id` int(11) NOT NULL default '0',

`parent_id` int(11) NOT NULL default '0',

`group_ids` text,

`languages_id` int(11) NOT NULL default '0',

`content_title` text NOT NULL,

`content_heading` text NOT NULL,

`content_text` text NOT NULL,

`sort_order` int(4) NOT NULL default '0',

`file_flag` int(1) NOT NULL default '0',

`content_file` varchar(64) NOT NULL default '',

`content_status` int(1) NOT NULL default '0',

`content_group` int(11) NOT NULL default '0',

`content_delete` int(1) NOT NULL default '1',

PRIMARY KEY (`content_id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=34 ;



--

-- Dumping data for table `content_manager`

--

INSERT INTO `content_manager` VALUES (33, 0, 0, '', 1, 'XXXXXXXXXX', 'YYYYYYYYYYYYYY', '', 0, 0, 'limit.html', 1, 0, 1);



我要定時更改content_file 的檔案名稱。
4則回覆 4
watermelonyu
教授

希望由cron定時變更Mysql裡的一筆資料

Hi,

請問你"content_file"的內容值有超過10個以上嗎?如果沒有,有兩種作法 :

1. 在原先的script中改寫成:

cd /your_directory

files=`ls *content_file*`

echo $files

for file in $files

do

.....

CREATE TABLE `content_manager` (

.....

$file varchar(64) NOT NULL default '',

.....

done

2. 或乾脆就寫一對一的 cron scripts去submit在不同日期執行.

Regards,

老鷹
watermelonyu
教授

希望由cron定時變更Mysql裡的一筆資料

印象中更改是用update的指令.
watermelonyu
教授

希望由cron定時變更Mysql裡的一筆資料

1. upd_content_file.sql

update content_manager set content_file="pageX.htm" where ......... ;

commit;



2. upd_cron-content_file.ksh -- add to your cron

#!/bin/ksh



sqlbinpath=/opt/mysql/bin

${sqlbinpath}/mysql --user=root dbname < ./upd_content_file.sql
watermelonyu
教授

希望由cron定時變更Mysql裡的一筆資料

Hi Matthew,

三更半夜還在回答問題,實在是太認真了.

Regards,

老鷹