MySQL(MariaDB)で既存のテーブルからCREATE文を作成する方法

既に存在するテーブルと同じスキーマのテーブルを作成したいときがある。 その場合、以下のコマンドを実行する。なお、当たり前であるが、既存のテーブルが存在するDB上から実行する。

SHOW CREATE TABLE テーブル名

mysql> SHOW CREATE TABLE sessions \G
*************************** 1. row ***************************
       Table: sessions
Create Table: CREATE TABLE `sessions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `session_id` varchar(255) NOT NULL,
  `data` text,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `index_sessions_on_session_id` (`session_id`),
  KEY `index_sessions_on_updated_at` (`updated_at`)
) ENGINE=InnoDB AUTO_INCREMENT=30692 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

PHPでGETパラメータを追加したURLの取得法

現在のGETパラメータに対し、パラメータを追加・修正したURLが欲しい場合がある。例えば、ページネーションにおいて、次のページのリンクを作成したい場合などだ。

http_build_query(array_merge($_GET, array( 〈追加したいパラメータ〉)));

http_build_query(array_merge($_GET, array('page'=> 9999)));

Mysqlで50音検索(あ行で始まるレコードを検索する)

検索できるのに50音検索なんて必要なのか? という疑問を抱きつつも、やってみたら意外に面倒だったのでメモしておく。

あ行

SELECT * FROM table  WHERE name REGEXP '^(あ|い|う|え|お|ア|イ|ウ|エ|オ)+';

英数字

SELECT * FROM table  WHERE name REGEXP '^([a-zA-Z0-9])+';

濁音・半濁音

一部文字列については、濁音や半濁音についても考慮したほうが良い。

SELECT * FROM table  WHERE name REGEXP '^(は|ひ|ふ|へ|ほ|ハ|ヒ|フ|ヘ|ホ|パ|ピ|プ|ペ|ポ|ぱ|ぴ|ぷ|ぺ|ぽ|バ|ビ|ブ|ベ|ボ|ば|び|ぶ|べ|ぼ)+';

ただし、括弧(「や【)で始まる文字列もあり、それらは上記ではヒットしない。

一行テキストボックスの横幅を入力データの長さに合わせる

Webページを印刷する際、一行テキストボックスに長いデータが入っている場合、はみ出た文字列が印刷されないという課題がある。 そのため、画面を表示する際に一行テキストボックスの横幅を、入力されているデータの長さに合わせてリサイズするようにした。

  $('input[type="text"]').each(function( index ) {
       $(this).attr('size', $(this).val().length * 2);
  });

Demo

業務の流れを20にまとめた「Workflow Patterns」

Simply Messing About in Boats

目次

Workflow Patternsとは

簡単に言えば、企業における業務フローのパターン集である。企業で利用するシステム開発では、会社でどのような業務を行っているかを観察し、分析*1することが肝要である。このパターン集は、それらを支援するための1種のフレームワークである。

公式サイト(Workflow Patterns Home Page)では、下記のように記されている。

The Workflow Patterns Initiative was established with the aim of delineating the fundamental requirements that arise during business process modelling on a recurring basis and describe them in an imperative way. The first deliverable of this research project was a set of twenty patterns describing the control-flow perspective of workflow systems.

簡単に訳すと、

  • ビジネスモデリングで繰り返し現れる基本的な要件を記述
  • ワークフローシステムの制御フローを20パターンにまとめた

である。

Workflow Patternsで扱っているもの

Workflow Patternsでは、下記5つのパターン集が公開されている*2

  1. Control
  2. Resource
  3. Data
  4. 例外処理
  5. Presentation

Workflow Patternsの構成

ControlやResouceは、それぞれのパターンが下記構成でまとめられている。

  1. Pattern No. & Pattern Name
  2. Image or Animation *3
  3. Description(説明)
  4. Synonyms(別名)
  5. Examples(事例)
  6. Motivation(必要性??)
  7. Overview(概要)
  8. Context(文脈)
  9. Implementation(実装状況)
  10. Issues(課題)
  11. Solutions(解決)
  12. Evaluation Criteria(評価基準)
  13. Product Evaluation(製品評価)

構成を分析すると、なかなか良く考えられた構成になっていることが分かる。

1~5が、パターンの概要。 6~9が、パターンの詳細。 10~11が、メリットや使い所の説明。 12~13が、使える場所の説明。

概要でつかみ、詳細で説明し、メリットを伝え引き込み、最後に利用できる製品紹介を行っている。

何かを説明する際には、便利な構成かもしれない。

*1:図や言葉を用いて表し、問題の有無を発見したり、改善できる余地が無いかを検討すること

*2:残念ながら詳細には把握できていない

*3:Coloured Petri netの形式。ペトリネットとは、離散分散システムを数学的に表現する手法とのこと