今天碰到一個問題是
寫的shell script 手動run的時候 是正常可以執行的
這個script 主要是呼叫mysql 執行一些資料庫的動作
查了一下發現是一些環境變數的問題
在crontab不認得一些變數--> path裡面所設定的mysql變數
因此先在環境下
下 echo $PATH
可以知道PATH的變數設定
之後再script增加
export PATH="上面得到的設定"
如此就可正常執行
參考
http://stackoverflow.com/questions/14612444/bash-script-runs-manually-but-fails-on-crontab
2013年11月27日 星期三
2013年11月25日 星期一
sql exist vs in
這邊比較一下sql exist 和in的差別
Select * from T1 where x in ( select y from T2 )
LIKE:
select *
from t1, ( select distinct y from t2 ) t2 >
where t1.x = t2.y;
如果使用EXISTS,如同上述的查詢結果
select * from t1 where exists ( select null from t2 where y = x )
LIKE:
for x in ( select * from t1 )
loop
if ( exists ( select null from t2 where y = x.x )
then
OUTPUT THE RECORD
end if
end loop
因此當子查詢比主查詢小的時候使用in ,反之則使用exist
外大內小=IN,外小內大=EXISTS
參考了http://tw.knowledge.yahoo.com/question/question?qid=1306041509015
Select * from T1 where x in ( select y from T2 )
LIKE:
select *
from t1, ( select distinct y from t2 ) t2 >
where t1.x = t2.y;
如果使用EXISTS,如同上述的查詢結果
select * from t1 where exists ( select null from t2 where y = x )
LIKE:
for x in ( select * from t1 )
loop
if ( exists ( select null from t2 where y = x.x )
then
OUTPUT THE RECORD
end if
end loop
因此當子查詢比主查詢小的時候使用in ,反之則使用exist
外大內小=IN,外小內大=EXISTS
參考了http://tw.knowledge.yahoo.com/question/question?qid=1306041509015
訂閱:
文章 (Atom)