問題タブ [mysql-error-1170]
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.
mysql - Rails 2.3.2 での MySQL フルテキスト インデックス (移行の問題)
Rails 2.3.2 アプリで MySQL フルテキスト インデックスを使用しています。移行時にネイティブ SQL 経由でインデックスを追加しました。しかし、schema.rb で問題を引き起こす既知の問題があります。Rails はフルテキスト インデックスを認識せず、通常のインデックスを作成しようとします。これにより、schema.rb からデータベースを作成するときにエラーが発生します (例: テスト、仕様など):
Rails 2.3.2 でこの問題を解決する方法はありますか? そうでない場合、これに対処する最善の方法は何ですか?
ありがとうございました!
私の移行:
スキーマ.rb:
mysql - MySql BLOB 列で空間インデックスを作成中にエラーが発生しました
BLOB 型の Location という名前のテーブル列に空間インデックスを追加しようとしています。私がこれを試してみると:
私は得る:
エラー: BLOB/TEXT カラム 'Location' がキーの長さを指定せずにキー指定で使用されました
しかし、MySql 5.1 (私が使用しているバージョン) の公式ドキュメントでは、空間インデックスを参照するときに次のように明確に述べています。
「MySQL 5.1 では、列のプレフィックスの長さは禁止されています。各列の全幅がインデックス化されています。」
これは確かに、プレフィックスを提供する必要がないことを示しています。とにかく次のようにプレフィックスを追加してみました:
そして私は得る:
エラー: プレフィックス キーが正しくありません。使用されたキー部分が文字列ではない、使用された長さがキー部分よりも長い、またはストレージ エンジンが一意のプレフィックス キーをサポートしていない
それで、一体何が起こっているのですか?? 情報として、私は MySQL 5.1.37 コミュニティを使用しています。私のテーブルは MyISAM です。これは create ステートメントです。
PS私も場所をNOT NULLにしてみましたが、違いはありませんでした。
mysql - TEXTのデータ型でMySQLデータベースに列を作成できません
RSSフィードからのアイテムを保持するテーブルを作成していますが、列「description」を作成する必要があります。この列にインデックスがなく、制限が設定されていないTEXTとしてデータ型を選択しました。これは私が得ているエラーです:
この列にインデックスを付けることを選択すると、次のエラーメッセージが表示されます。
この列に指定した長さは、最初に取得したエラーを返します。誰かが私が間違っていることを教えてもらえますか?ありがとう!
アップデート:
MySQL5.0.4を使用しています
テーブルの作成に使用しているクエリは次のとおりです。
mysql - コンテンツ タイプ (object_pk) を使用して一般的な関係を作成する際のエラー
私は、django の ContentType フレームワークを使用して、モデルの一般的な関係を作成しようとしています。django 開発者がどのようにそれを行うかを見た後、django.contrib.comments.models
私は彼らのアプローチ/慣習を模倣すると思いました:
django.contrib.comments.models 、21行目から):
それはソースから取得されたものであり、もちろん、ソースは私のために機能します (object_pk が正常に保存されたコメントがあります (実際には整数); ただし、syncdb
テーブルの作成中にエラーが発生し、終了します:
彼らがそれを行うことができ、私ができない理由はありますか?
周りを見回した後、ドキュメントが実際に述べていることに気付きました:
関連するモデルからの主キー値を格納できるフィールドをモデルに与えます。(ほとんどのモデルでは、これは IntegerField または PositiveIntegerField を意味します。)
このフィールドは、ジェネリック リレーションに含まれるモデルの主キーと同じタイプである必要があります。たとえば、IntegerField を使用する場合、CharField を主キーとして使用するモデルとジェネリックな関係を形成することはできません。
しかし、なぜ彼らは私ではなくそれを行うことができるのですか?!
ありがとう。
PS: これらの 3 つのフィールドを使用して AbstractBaseModel を作成し、それを作成してabstract=True
使用しようとしました (それが関係している場合) ... 同じエラー。
java - 非原始的な@Idを持つ@IdClass
複合主キーをクラスに追加しようとしていますが、少し問題があります。これがクラスです。
クラスをマップするためにorm.xmlを使用しています。これは、クラスが実際にはJPAに依存したくない高レベルのAPIの一部であるためです。これには、いくつかの実装があります。
ここにあります:
最後に、すべてを機能させるために、TokenPKクラスを作成しました。これは次のようになります。
私が抱えている問題は、Hibernateがmysqlテーブルを作成できないことを不平を言っていることです。これは、「BLOB/TEXT列」の「user」がキーの長さのないキー仕様で使用されているためです。
私の問題は、実際には、列が最初にBLOBとして格納されていることです。id-classを入れるまでは問題なく動作していましたが、ユーザーはそのidを介してリンクされていました。Hibernateに主キーとして使用していたユーザーのIDのlong値を使用させるにはどうすればよいですか?
更新されたorm.xml:
mysql - MySQL エラー: キー長のないキー指定
varchar(255) である主キーを持つテーブルがあります。255 文字では不十分な場合があります。フィールドをテキストに変更しようとしましたが、次のエラーが発生します。
どうすればこれを修正できますか?
編集:このテーブルには、複数の列を持つ複合主キーがあることも指摘する必要があります。
php - MySQL:テーブル内の複数の行に対してデータを一意にする方法は?
phpMyAdminで次のことを行うにはどうすればよいですか(UNIQUE(タイトル、説明)の実行方法のみに関心があります)。
ちなみに、SOについて別の質問を開かないように、長い文字列に使用できる他のタイプを知りたいのですが。225文字は私たちの目的には小さすぎるからです。MySQL 5.0.3の時点で、varcharは最大65,535文字を受け入れることができることを私は知っていますが。しかし、これらのフィールドをMEDIUMTEXTとして指定できますか(互換性のために、クライアントはそれらをそのようにしたいと考えています)?これを行うと、「BLOB/TEXT列...キーの長さのないキー指定で使用されます」というエラーが発生します。それならどうすればいいですか?説明が異なっていても同様のタイトルを保存できるように、これら2つのフィールドを一意にする必要がありますが、受信データのタイトルと説明に一致するタイトルと説明がある場合は、この受信データを保存しないようにします。 。
mysql - 列挙型をキーとしてマップを永続化するために使用されるHibernateアノテーションは何ですか?
列挙型クラスをキーとしてマップで使用する適切なHibernateアノテーションを取得するのに問題があります。これは単純化された(そして非常に工夫された)例です。
これがThingに関する私の現在の注釈です
Hibernateは次のDDLを生成して、MySqlデータベースのテーブルを作成します
hibernateはletter(私のマップキー)をtinyblobとして定義しようとしますが、両方とも列挙型Letterであっても、startLetterをvarchar(255)として定義していることに注意してください。テーブルを作成しようとすると、次のエラーが表示されます
このエラーをグーグルで検索したところ、tinyblob列を主キーの一部にしようとするとMySqlに問題があるようです。これは、休止状態がThing_letterFrequenciesテーブルで行う必要があることです。したがって、startLetterのように、文字をvarchar(255)にマップしたいと思います。
残念ながら、私はしばらくの間MapKeyアノテーションに悩まされていて、これを機能させることができませんでした。@MapKeyManyToMany(targetEntity = Product.class)も試しましたが、成功しませんでした。hibernateがletteCountsマップキーをstartLetterと同じように処理するように、letterCountsマップの正しい注釈を教えてもらえますか?
mysql - Blob/Longtextフィールドへのインデックスの適用
Hibernateアノテーションを使用して特定のテキスト文字列にインデックスを作成しようとしています。私が現在行っていることは次のとおりです。
ただし、列の長さが1400であるため、これはlongtext
型を使用してSQLにマップされます。hbm2ddlは問題なくテーブルを作成できますが、インデックスを作成しようとすると、次のようになります。
Hibernateを使用してこの列にインデックスを作成するにはどうすればよいですか?
mysql - MySQL: varchar(255) UNIQUE 列を UNIQUE Text NOT NULL に変更する方法は?
現在の列は VARCHAR(255) NOT NULL です。それを TEXT NOT NULL に変更するにはどうすればよいですか?
注: プロパティ タイプを変更する予定の列は、別の列の UNIQUE KEY の組み合わせです。例えば
UNIQUE KEY (名前、説明)
現在、列の説明は varchar(255) にあります。次の理由で変更できません。
エラー 1170 (42000): BLOB/TEXT 列 'description' がキーの長さのないキー指定で使用されています
私はそれがテキストである必要があります。面倒で重要なデータがすでに含まれています。作り直すのが大変そう。