操作数据库一个零件表的程序

返回

把所有的tables写入tables.txt c:\database\sql>mysql -u cbuser -p cookbook > tables.txt Enter password: ****** show tables; quit

make_ptable1.pl

use strict; use DBI; my(%t,$n,@fld,@rec); # 输入主机序号,形成零件表名 print "Please input parts table name(Enginee.NO)="; chop($t{input}=<STDIN>); $t{inputf} = sprintf("%06d",$t{input}); $t{table1} = 'a' . $t{inputf}; # 连接数据库 $t{dsn} = "DBI:mysql:host=localhost;database=cookbook"; $t{dbh} = DBI->connect($t{dsn}, "cbuser", "cbpass") or die "Cannot connect to server\n"; $t{dbh}->do("SET NAMES utf8"); if(!$t{dbh}){ print "SQL read ERROR!\n"; exit; } # 删除一个零件表 $t{sql} = 'DROP TABLE IF EXISTS ' . $t{table1} . ';'; $t{dbh}->do($t{sql}); # 创建一个零件表 $t{sql} = 'CREATE TABLE ' . $t{table1}; $t{sql} .= ' ('; $t{sql} .= 'id INT AUTO_INCREMENT,'; $t{sql} .= 'name TEXT,'; $t{sql} .= 'code TEXT,'; $t{sql} .= 'dwg_id INT,'; $t{sql} .= 'Nuid INT,'; $t{sql} .= 'weight INT,'; $t{sql} .= 'price1 TEXT,'; $t{sql} .= 'price2 TEXT,'; $t{sql} .= 'memo TEXT,'; $t{sql} .= 'PRIMARY KEY (id));'; $t{dbh}->do($t{sql}); $t{sth} = $t{dbh}->prepare ("SHOW columns FROM $t{table1}"); $t{sth}->execute; while ( @rec = $t{sth}->fetchrow_array ) { print "@rec\n"; } $t{sth}->finish; # ----------注意以下部分删除 # 输入enq1序号 print "Please input ID of enq1="; chop($t{enqid}=<STDIN>); $t{sql} = 'UPDATE enq1 SET partsid = "C" WHERE id = "'; $t{sql} .= $t{enqid} . '"'; $t{dbh}->do($t{sql}); $t{sql} = 'UPDATE enq1 SET QTY = "C" WHERE id = "'; $t{sql} .= $t{enqid} . '"'; $t{dbh}->do($t{sql}); $t{dbh}->disconnect; __END__;
返回