چطوري ميتونم يه خط از يه جدول رو عينا به جدول ديگري در همون ديتابيس كپي يا منتقل كنم؟

NabiKAZ

Well-Known Member
سلام

چطوري ميتونم يه خط از يه جدول رو عينا به جدول ديگري در همون ديتابيس كپي يا منتقل كنم ؟

ديتابيس mysql
زبان php

نبي
 
آخرین ویرایش:

oxygenws

Active Member
از دستوری مشابه زیر استفاده کن.
کد:
insert into table1 select * from table2 where val1=1 and val2>5

توجه کن که فیلد ها در جدول مبدا و مقصد باید یکی باشه، در غیر این صورت خطا گرفته میشه.
 

Majid

مدیر سایت
عضو کادر مدیریت
امید فکر کنم این Query فقط در MySQL 4.1 به بالا کار کنه.. نه؟!

مجید
 

oxygenws

Active Member
نه، در 4.0 هم کار میکنه.
ما subquery در mysql 4.0 داریم.
subSELECT هم در mysql 4.0 داریم اما خیلی خیلی ناقص که قراره در نسخه 5 کامل بشه.
 

NabiKAZ

Well-Known Member
سلام
از oxygenws ممنونم که پاسخ دادند .
همینطور از آقا مجید و دیگر دوستان که افتخار دادند و در بحث شرکت کردند.

البته اين دستور چون عينا داده ها رو كپي ميكنه ، فيلد id كه معمولا شماره انداز سطر هاست هم كپي ميزنه و اگر فيلد منحصر به فرد باشه ، در صورت وجود id مشابه نميتونه روش كپي كنه . همينطور pointer هم طبق چيزي كه داره كپي ميشه در مقصد تغيير ميده و در نتيجه كل ستون id در جدول مقصد ترتيبش به هم ميريزه !
من بجاي * (ستاره) اسم چند تا از فيلدام رو گذاشتم ولي خطا داد ! راهي نداره بعضي از فيلدا در قالب يه سطر جديد insert بشن ! آخه من 36 تا فيلد دارم . مشكله به خاطر يه فيلد (همون id) همه رو تك تك بخونم دوباره بنويسم ...!

ممنون
نبی
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا