火曜日, 2月 25, 2014

MySQL: テーブル構造を取得し、SQL文に変換する

MySQLでテーブル構造を取得するには、DESCRIBE (テーブル名) などのSQL文を使用します。



これをSQL文に変換するには、テーブルの情報をSQL文の形式でそれぞれ記述してやる必要があります。

CREATE TABLE IF NOT EXISTS `notes` (
  `updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` text COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `videoid` text COLLATE utf8_unicode_ci NOT NULL,
  `imagefile` text COLLATE utf8_unicode_ci NOT NULL,
  `docnum` text COLLATE utf8_unicode_ci NOT NULL,
  `shortdesc` text COLLATE utf8_unicode_ci NOT NULL,
  `onhold` int(11) NOT NULL,
  `registered` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 
AUTO_INCREMENT=61 ;

ここで気をつけねばならないのは、timestamp値をとるコラムです。

デフォルト値に CURRENT_TIMESTAMP をとるコラムは、TIMESTAMP 値をとるコラムより前に記述しなければなりません。

コラムを並べ替える必要があります。

ここでは array_unshift() という関数を使用し、CURRENT_TIMESTAMP をとるコラムを配列の最初に格納するという方法をとりました。

ソースコード: GitHub: tablestructure.php

Qt: 外部プログラムを起動する

  Qt/C++ のアプリは、外部へ直接アクセスできます。これはネットアプリでは不可能な Qt のメリットです。 外部プログラムを起動することもできます。QProcess::startDetached() を使うと独立したプロセスを立ち上げることができます。 この QProces...