2011-08-17 6 views
-1

私は、最大1000行を持つことができるテーブルを作る必要があります。これをどのように実装すればよいですか?番号を制限する方法作成中の表の行の数

テーブル作成クエリには他にどのような制約を追加する必要がありますか?

+0

誰かが行番号を挿入しようとするとどうなりますか。 1001? – Jacob

+2

あなたはどのデータベースを使用していますか? Postgresql? MySQL? – plang

+0

を1001行にするとエラーが発生するはずです... – akshay3004

答えて

1

は、これはあなたが見ることができるように、あなたは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

0

はあなたのDBMSによっては、この要件を実装することができない場合があります挿入の場合の記録あなたのDBMSがサポートしている場合、挿入前の総行数が1000レコードを超えた場合、 'before'トリガーで挿入を防ぐことができます。

0

テーブルの行番号を検査する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 
+1

これは、テーブルに現在999個のレコードがある場合には、ちょっとピンキーが必要です。同時に2個を挿入しようとします。もう片方。しかし、良いスタート。 –

関連する問題