⑴ 在mysql的存儲過程中使用刪除,本來想刪除一條記錄,結果把所有的記錄都刪了
你這個語句肯定是把所有的刪除:
delete from users where id=id
記住,變數、參數不要和列名相同
⑵ MySQL存儲過程查詢和刪除的問題
創建資料庫: create database database-name;
刪除資料庫: drop database database-name
查看所有資料庫: show databases
進入資料庫: use database-name
創建表table:
create table table-name(
id int,
name varchar(number)
money float(10,2)
)charset utf8,
刪除表table: drop table table-name
查看錶結構: desc table-name
查看所有表: show tables
重命名表table: rename table table-name to table-other-name
中文編碼設置{
show variables like 'character%'
set names gbk *必須gbk*
alter table table-name charset gbk
alter tabler table-name modify [column] dataName datatype charset gsk
}
改變表結構(列){
追加: alter table table-name add column dataName datatype
修改數據類型: alter table table-name modify column dataName datatype-other
修改列名: alter table table-name change column dataName dataName-other datatype
刪除列: alter table table-name drop column dataName
}
資料庫的基本操作{
添加: insert into table-name(dataName,dataName-other,..[添加的數據及數據 順序]) values(data(符合datatype) , ,)charset utf8
刪除: delete from table-name[where definition 刪除條件滿足的記錄|或刪除所有 記錄]
⑶ mysql中如何自動刪除數據表中的數據。
硬要實現也能實現,不過通常用crontab,做定時任務,比如每天晚上0點校驗,不滿足的做處理
crontab 就是定時調用腳本
⑷ 如何在mysql中定時清除所有庫中指定的表中的數據,而不用每個庫都寫一遍定時任務,求大神指點!!!
這種定時任務一般都是寫shell腳本來解決,通過定時執行shell腳本來實現定時任務。
可以在shell腳本中,指定需要批量刪除的資料庫,將它們設置為變數,然後寫清空表的語句,就可以實現定義在變數中的資料庫批量刪除。
你可以先寫一個腳本進行測試,可以讀取到一個資料庫就行,然後將多個資料庫放到數組中,循環遍歷即可。
最後測試沒問題的話,就可以將shell腳本添加到crontab定時任務中,就可以實現每2天定時清空數據表。
⑸ mysql調用存儲過程刪除數據
創建:
delimiter //
create procere my_add(IN a int, IN b int, OUT c int)
begin
if a is null then set a = 0;
end if;
if b is null then set b = 0;
end if;
set c = a + b;
end;
//
delimiter ;
查看:
方法一:(直接查詢,比較實用,查看當前自定義的存儲過程)
select `specific_name` from mysql.proc where `db` = 'your_db_name' and `type` = 'procere'
方法二:(查看資料庫里所有存儲過程+內容)
show procere status;
方法三:(查看當前資料庫里存儲過程列表)
select specific_name from mysql.proc ;
方法四:(查看某一個存儲過程的具體內容)
select body from mysql.proc where specific_name = 'your_proc_name';
查看存儲過程或函數的創建代碼 :
show create procere your_proc_name;
show create function your_func_name;
調用:
mysql> set @a = 10;
Query OK, 0 rows affected (0.00 sec)
mysql> set @b = 20;
Query OK, 0 rows affected (0.00 sec)
mysql> set @c = 0;
Query OK, 0 rows affected (0.00 sec)
mysql>select @c;
+------+
| @c |
+------+
| 0 |
+------+
mysql> call my_add(@a, @b, @c);
Query OK, 0 rows affected (0.00 sec)
mysql> select @a, @b, @c;
+------+------+------+
| @a | @b | @c |
+------+------+------+
| 10 | 20 | 30 |
+------+------+------+
1 row in set (0.00 sec)
刪除
drop procere your_proc_name;
⑹ php mysql 定時每天凌晨3點執行刪除數據任務
mysql定時任務
自 MySQL5.1.6起,增加了一個非常有特色的功能–事件調度器(Event Scheler),可以用做定時執行某些特定任務(例如:刪除記錄、對數據進行匯總等等),來取代原先只能由操作系統的計劃任務來執行的工作。更值得 一提的是MySQL的事件調度器可以精確到每秒鍾執行一個任務,而操作系統的計劃任務(如:Linux下的CRON或Windows下的任務計劃)只能精 確到每分鍾執行一次。對於一些對數據實時性要求比較高的應用(例如:股票、賠率、比分等)就非常適合。
如:每隔30秒將執行存儲過程test,將當前時間更新到examinfo表中id=14的記錄的endtime欄位中去.
CREATE PROCEDURE test ()
BEGIN
update examinfo SET endtime = now() WHERE id = 14;
END;
create event if not exists e_test
on schele every 30 second
on completion preserve
do call test();
2. windows、linux 的定時任務 這個就不舉例了,通過腳本定時去調用mysql執行