私は、最大1000行を持つことができるテーブルを作る必要があります。これをどのように実装すればよいですか?番号を制限する方法作成中の表の行の数
テーブル作成クエリには他にどのような制約を追加する必要がありますか?
私は、最大1000行を持つことができるテーブルを作る必要があります。これをどのように実装すればよいですか?番号を制限する方法作成中の表の行の数
テーブル作成クエリには他にどのような制約を追加する必要がありますか?
は、これはあなたが見ることができるように、あなたはMAX_ROWSオプションを持っているのMySQL
ためtable_option:
{ENGINE|TYPE} [=] engine_name
| AUTO_INCREMENT [=] value
| AVG_ROW_LENGTH [=] value
| [DEFAULT] CHARACTER SET [=] charset_name
| CHECKSUM [=] {0 | 1}
| [DEFAULT] COLLATE [=] collation_name
| COMMENT [=] 'string'
| CONNECTION [=] 'connect_string'
| DATA DIRECTORY [=] 'absolute path to directory'
| DELAY_KEY_WRITE [=] {0 | 1}
| INDEX DIRECTORY [=] 'absolute path to directory'
| INSERT_METHOD [=] { NO | FIRST | LAST }
| MAX_ROWS [=] value
| MIN_ROWS [=] value
| PACK_KEYS [=] {0 | 1 | DEFAULT}
| PASSWORD [=] 'string'
| ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}
| UNION [=] (tbl_name[,tbl_name]...)
です。ちょうどそれを1000に設定すれば、うまくいくはずです。
また、マニュアルをチェックアウト:あなたができる制約
一つのことは> 1000年を削除するトリガーを追加しているようhttp://dev.mysql.com/doc/refman/5.0/en/create-table.html
はあなたのDBMSによっては、この要件を実装することができない場合があります挿入の場合の記録あなたのDBMSがサポートしている場合、挿入前の総行数が1000レコードを超えた場合、 'before'トリガーで挿入を防ぐことができます。
テーブルの行番号を検査するAFTER INSERTトリガーを作成できます。何かのように
CREATE TRIGGER MAXROWSCHECKER ON MyTable
AFTER INSERT
AS
BEGIN
DECLARE @rows INT ;
SELECT @rows = COUNT(*)
FROM MyTable ;
IF (@rows > 1000)
RAISERROR ('Too many rows in TABLE myTable', 16, 1) ;
ROLLBACK TRANSACTION
RETURN
END
これは、テーブルに現在999個のレコードがある場合には、ちょっとピンキーが必要です。同時に2個を挿入しようとします。もう片方。しかし、良いスタート。 –
誰かが行番号を挿入しようとするとどうなりますか。 1001? – Jacob
あなたはどのデータベースを使用していますか? Postgresql? MySQL? – plang
を1001行にするとエラーが発生するはずです... – akshay3004