Mysql--ライブラリ内のすべてのテーブルに対してselect count(*)対応するSQL文を生成します.

10013 ワード

CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));
create table emp_bonus(
emp_no int not null,
recevied datetime not null,
btype smallint not null);
CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `dept_manager` (
`dept_no` char(4) NOT NULL,
`emp_no` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));

出力フォーマット:cnts select count(*)from employees;select count(* ) from departments; select count(* ) from dept_emp; select count(* ) from dept_manager; select count(* ) from salaries; select count(* ) from titles; select count(* ) from emp_bonus;
まずはSQLITE_についてMASTER:SQLiteデータベースのSQLITEという特殊な名前MASTERでSELECTクエリを実行し、すべてのテーブルのインデックスを取得します.SQLiteデータベースごとにSQLITEという名前が付けられています.データベースのスキーマを定義するMASTERのテーブル.SQLITE_MASTERテーブルは次のように見えます:CREATE TABLE sqlite_master ( type TEXT, name TEXT, tbl_name TEXT, rootpage INTEGER, sql TEXT ); テーブルの場合、typeフィールドは常に「table」であり、nameフィールドは常にテーブルの名前である.回答は次のとおりです.
select "select count(*) from "||name||";"
as cnts from sqlite_master where type='table'