مشكلة مع SELECT INTO باستخدام المتغيرات المحلية

StackOverflow https://stackoverflow.com/questions/472936

  •  19-08-2019
  •  | 
  •  

سؤال

ولست بحاجة لإنشاء استعلام SQL لإدراج بعض البيانات في جدول استنادا إلى نتائج استعلام SELECT إلى متغير محلي. برنامجى DB هي الخلية 5.1، ولكن لا أعتقد أنه ينبغي أن تحدث فرقا هنا. أساسا، ما أريد القيام به هو:

SELECT id INTO var_name FROM table1 WHERE some_column='something' LIMIT 1;
INSERT INTO table2 (`number`) VALUES (@var_name);

وأنا لا يمكن إيقافه من البيان الأول، على الرغم، كما أحصل على خطأ "غير معلنة var_name متغير". لقد حاولت ايضا وضع البيان في كتلة END BEGIN /، وإجراء مخزن، ولكن بعد ذلك واجهت أخطاء أخرى التي تنص فقط أن هناك خطأ على خط SELECT. ما أفعل الخطأ؟

هل كانت مفيدة؟

المحلول

وحاول

INSERT INTO table2 (`number`)
SELECT id FROM table1 WHERE some_column='something' LIMIT 1

نصائح أخرى

وتحتاج إلى إعلان @var_name ثم حدد في @var_name. أنا لا أعرف الخلية جيدا ولكن حاول شيئا من هذا القبيل:

declare @var_name varchar(100);
SELECT id INTO @var_name FROM table1 WHERE some_column='something' LIMIT 1;
INSERT INTO table2 (`number`) VALUES (@var_name);

تحرير: ولعل أفضل طريقة للقيام بذلك:

insert into table2 ('number')
select id 
from table1 
where some_column = 'something' LIMIT 1;

وهذا ينفي الحاجة إلى وجود متغير، وسوف يكون هناك الكثير أسرع وأسهل للفهم على الطريق.

CREATE TABLE table_name
AS  
SELECT ...(your select)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top