PDA

View Full Version : insert کردن بک جدول در جدول دیگر



saeid.yavary
پنج شنبه 04 بهمن 1386, 12:51 عصر
سلام چطوری می تونم مقادیر یک table رادر یک table دیگه که فیلدهای برابر دارند و هر کدوم دارای pk هم هستند را inset کنم.

reza_rad
پنج شنبه 04 بهمن 1386, 12:55 عصر
در دو دیتابیس مختلف؟ یا اینکه یک دیتابیس؟

saeid.yavary
پنج شنبه 04 بهمن 1386, 12:57 عصر
در یک دیتابیس

reza_rad
پنج شنبه 04 بهمن 1386, 13:03 عصر
اگر ساختار دو جدول یکی است:

insert into table_1
select * from table_2

saeid.yavary
پنج شنبه 04 بهمن 1386, 13:11 عصر
من هم از این استفاده کردم ولی از pk خطا می گیره.
Server: Msg 2627, Level 14, State 1, Line 1
Violation of PRIMARY KEY constraint 'PK_Table_1'. Cannot insert duplicate key in object 'Table_1'.
The statement has been terminated.
در ضمن هر دو جدول از قبل مقدار داشتند.

reza_rad
پنج شنبه 04 بهمن 1386, 13:16 عصر
مشکل استفاده از PK نیست.
مشکل اینه که فیلد PK در جدول دوم مقدار یا مقادیری داره که توی جدول 1 هم معادلش هست.
راه حل:
اگه این مقادیر واقعا تکراری هستند که اونها رو در سلکت تون فیلتر کنید تا فقط مقادیر غیر تکراری وارد جدول اول بشن.
اگه تکراری بودن فقط توی کلید اصلی هست و بقیه فیلدهاش با هم متفاوت هستند می تونید برای این نوع رکوردها خودتون مقدار بدید.

شاید هم بهتر باشه کلا کاری رو که می خواهید انجام بدید بگید تا اگه راه بهتری وجود داره بررسی بشه.

در کل طبیعی هم نیست که فیلد کلید شما دو مقدار مساوی داشته باشه.