データベースから条件に合ったデータを抹消するための命令として、SQLにはdeleteという命令があります。
データベースegiのテーブルmeiboにあるデータを抹消する例を次に示します。
【使用するSQL文】 delete from meibo where namae='タロ' |
【プログラム例】 #!/usr/bin/perl use DBI; $dbh = DBI->connect("dbi:Pg:dbname=egi",'','') or die "Cannot connect: " , $DBI::errstr; $sth = $dbh->prepare("delete from meibo where namae=?" ) or die "Cannot prepare: " , $dbh->errstr(); $sth->execute( 'タロ' ) or die "Cannot execute: " , $sth->errstr(); |
【プログラム実行結果】 [egi@myouga]$ perl cgirei_del.pl [egi@myouga]$ psql Welcome to the POSTGRESQL interactive sql monitor: Please read the file COPYRIGHT for copyright terms of POSTGRESQL type \? for help on slash commands type \q to quit type \g or terminate with semicolon to execute query You are currently connected to the database: egi egi=> select * from meibo; namae |toshi|addre | tel ----------+-----+------------+------------ ハル | 2|宇部市 |0836-88-8888 ミミ | 2|宇部市 |0836-33-3333 ポチ | 10|山口市 |0839-66-6666 クー| 4|宇部市|0836-99-9999 サチ| 3|下関市|0832-77-7777 (5 rows) egi=> |
【備考】
上記のプログラムでは、検索条件の箇所にプレースホルダー機能を用いており、delete 命令内に条件である「名前がタロ」の値を埋め込んでいない。 ?の箇所は実行時(execute)時に、条件「namae='タロ'」と置き換えて実行される。 【注意事項】
|