問題タブ [auto-increment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
7991 参照

sqlite - Webkit の HTML5 データベース ストレージから挿入 ID を取得する

Webkit (少なくとも iPhone と Safari では) は、SQLite 経由で HTML5 のデータベース ストレージをサポートします。

次のトランザクションの挿入 ID (データベースに自動インクリメント フィールド 'id' があります) を取得する最善の方法を見つけようとしています。

0 投票する
4 に答える
991 参照

sql-server-2005 - SQL Server 2005 で「autonumber」フィールドを実装するにはどうすればよいですか?

IDENTITY フィールドは知っていますが、問題を解決するために使用できないと感じています。

複数のクライアントがいるとしましょう。各クライアントには複数の注文があります。各クライアントは、注文に固有の順番に番号を付ける必要があります。

テーブル構造の例:

このテーブルの行の例は次のとおりです。

クライアントのMAX ClientOrderIDを取得し、その値をINSERTに使用するのが単純な方法であることはわかっていますが、これは同時実行の問題の影響を受ける可能性があります。トランザクションを使用することを検討していましたが、これに使用できる最も広い分離範囲がよくわかりません。LINQ to SQL を使用しますが、それは関係ないと感じています。

0 投票する
7 に答える
73075 参照

sql - SQL サーバー ID 列の値が 1 ではなく 0 から始まる

TABLE CREATE に IDENTITY(1,1) があるにもかかわらず、データベース内のいくつかのテーブルの ID が 0 から始まるという奇妙な状況があります。これは一部のテーブルには当てはまりますが、他のテーブルには当てはまりません。それは今日まで働いています。

ID列をリセットしようとしました:

しかし、新しいレコードは 0 から始まります。すべてのテーブルでこれを試してみましたが、まだ 0 から始まるものと 1 から始まるものがあります。

ポインタはありますか?

(高度なサービスを備えた SQL Server Express 2005 を使用しています)

0 投票する
1 に答える
554 参照

mysql - MySQL のスコープ付き/複合代理キー

これは私の現在のデータベースの抜粋です(理解しやすいようにテーブル名を変更しました):

は常にidで作成された代理キーauto_incrementです。

Pet.id代理キーを「スコープ」にするPet.ownerFKか、つまり、複合キー[ownerFk, id]を最小キーとして使用したいと考えています。テーブルを次のように動作させたい:

私は現在MyISAM のこの機能を使用しており、「複数列インデックスのセカンダリ列で指定できますAUTO_INCREMENT。この場合、AUTO_INCREMENT列の生成値は として計算されMAX(auto_increment_column) + 1 WHERE prefix=given-prefixます。これは、データを順序付けられたグループに入れたい場合に役立ちます。 ."

ただし、いくつかの場所でトランザクションが必要なため、さまざまな (そしておそらく明白な) 理由により、MyISAM から InnoDB に切り替えたいと考えています。

InnoDBでこの効果を達成する方法はありますか?

この問題に関するいくつかの投稿を見つけました。それらの多くは、挿入前にテーブルを書き込みロックすることを提案しました。私はこれにあまり慣れていませんが、テーブルの書き込みロックではなく、これを少しオーバーホールするのではないでしょうか? Owner.current_pet_counterヘルパーフィールドとしてa を持つことが可能であれば、書き込み安全なトランザクション (これまで行ったことがない) を持つことをむしろ考えました。

したがって、別の許容される解決策は...

実際には、「スコープ」ID を実際のキーの一部にする必要はありません。私の実際のデータベース設計では、この「機能」を使用する別の「パーマリンク」テーブルを使用しています。現在、不足しているトランザクションの回避策として使用しています。次の代替案を考えました。

私はまだ MySQL でトランザクション/トランザクション変数を扱っていないので、これに重大な問題があるかどうかはわかりません。 注:id一度ペットに与えた sを再利用したくありません。それが私が使用しない理由ですMAX()このソリューションには注意事項がありますか?

0 投票する
3 に答える
1564 参照

sql - DBの現在のレコードに基づいて文字列フィールドを自動的にインクリメントするCSVまたはXLSからSQLにデータをインポートするにはどうすればよいですか?

ExcelからSQL2000データベースにデータをインポートする必要があります。

ワークシートから6つのフィールドをインポートし、先行ゼロを含む5文字に埋め込まれた整数を含む文字列フィールドをインクリメントする必要があります。このフィールドは主キーではなく、dbはこれを自動的に入力しません。また、DB、これが役立つ場合はこのフィールドをNULLとして入力し、これが役立つ場合は後で変更することを許可します。

ルーキーDTSと挿入ステートメントの組み合わせを使用して必要なテーブルにデータを取得し、今日実行する必要がある20レコードの文字列フィールドを手動で更新できますが、来週は約1000レコードをインポートする必要があります。

これを行うためにC#/ ADO.netアプリを作成する必要がありますか、[私は初心者なので、数日かかることを念頭に置いてください:-)]または、DTSを使用して文字列フィールドをインクリメントする方法はありますか直接または挿入ステートメントのある種のループ?

よろしくお願いしますG

編集:挿入しているテーブルは次のように構成されており、「cedeviceid」、「vanwarehouse」、「username」、「devicesimnumber」、「UserGroup」、「ServiceMgr」を更新する必要があります。Excelシートから。「sendercode」はインクリメントする必要のある文字列です

CREATE TABLE [dbo]。[mw_gsmprofile](
[cedeviceid] varchar NOT NULL、
[mainwarehouse] varchar NULL、
[vanwarehouse] varchar NULL、
[username] varchar NULL、
[sendercode] varchar NULL、
[devicesimnumber] varchar NULL、
[usersupportgsm] [int] NULL、
[userisonline] [int] NULL、
[onlinedate] varchar NULL、
[lastsentsequenceno] [int] NULL、
[lastsentdate] varchar NULL、
[lastreceivedsequenceno] [int] NULL、
[lastreceiveddate] varchar NULL、
[EnableAutoDownloading] [int] NULL、
[EnableCompressFile] [int] NULL、
[LogonUserName] varchar NULL、
[LogonPassword] varchar NULL、
[LogonDomain] varchar NULL、
[UserGroup] varchar NULL、
[UseStorageCard] [int] NULL、
[SMSMapProfile] varchar NULL、
[SMPPClientFlag] [int] NULL、
[LASTUPDATE] varchar NULL、
[ServiceMgr] varchar NULL、
[VanLocation] varchar NULL、
[OnHireWarehouse] varchar NULL、
[OnHireWhsRepType] [int] NULL、
[HireDepotWarehouse] varchar NULL、
[HireDepotWhsRepType] [int] NULL、
CONSTRAINT [PK_mw_gsmprofile] PRIMARY KEY CLUSTERED

[cedeviceid] ASC
)WITH(PAD_INDEX = OFF = OFF、IGNORE_DUP_KEY = OFF、ALLOW_ROW_LOCKS = ON、ALLOW_PAGE_LOCKS = ON)ON [PRIMARY]
)ON [PRIMARY]

サンプルデータ

cedeviceid、vanwarehouse、username、devicesimnumber、UserGroup、ServiceMgr 3431、999
、INSTALL TEAM 1、、INSTAL、AHOA 3441、999
、INSTALL TEAM 2、、INSTAL、AHOA 3451、999
、INSTALL TEAM 3、、INSTAL、AHOA
3461、999 、INSTALL TEAM 4、、INSTAL、AHOA 3471、999
、INSTALL TEAM 5、、INSTAL、AHOA 3472、999
、INSTALL TEAM 6、、INSTAL、AHOA

0 投票する
9 に答える
11946 参照

ms-access - Access のオートナンバー (インクリメント) はインクリメントが保証されていますか?

特定のテーブルについて、ID フィールドを AutoNumber (Increment) に設定しています。このテーブルに 5 行を立て続けに追加すると、それぞれの行の ID が最後の行よりも大きくなることが保証されますか? たとえば、以前の値が削除された場合、自動番号付けは 1 から再開されますか?

0 投票する
3 に答える
2627 参照

mysql - 現在の auto_increment 値を同じ INSERT クエリの別のフィールドの基準として使用します - これは MySQL で可能ですか?

私のテーブル(MySQL)には、次のフィールドがあります。

id - プライマリ、auto_increment

hash- base 36 表現id

ストアド プロシージャを使用して、ID が INSERT で受け取る値に相当する base 36 を計算して、両方のフィールドを一度に入力したいと思います。このようなもの:

明らかにこれは機能しませんが、私が達成しようとしていることを示していることを願っています. これは可能ですか?

注: クエリを 1 つだけ使用したいので、last_insert_id は役に立ちません (少なくとも私が理解している限り)。

0 投票する
11 に答える
712664 参照

postgresql - PostgreSQL 自動インクリメント

MySQL から PostgreSQL に切り替えており、値の自動インクリメントを行う方法を知りたいと思っていました。PostgreSQL のドキュメントでデータ型 "serial" を見ましたが、それを使用すると構文エラーが発生します (v8.0)。

0 投票する
2 に答える
6349 参照

sql - SQL Server: ストアド プロシージャ内で自動インクリメントされた ID を取得しますか?

私のデータベースには、自動インクリメントの主キー ID 'ID' と通常の 'TIMESTAMP 列' を持つ親テーブルがあります。親の「ID」列を参照する外部キーを持つ子テーブルがあります。

親データベースと子データベースの両方に新しい列を挿入するストアド プロシージャを作成したいと考えています。子の 'ID' 列を新しい自動インクリメントされた親の 'ID' 列と等しくなるように設定するにはどうすればよいですか? これには別のものが必要ですか:

それとも別の方法がありますか?