🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ دانشجوی سون‌لرن
OperationalError
جامعه پایتون (وب) ایجاد شده در ۱۱ شهریور ۱۴۰۲
    new_book_shelf = BookShelf.create(
         user=user, book=book, shelf=read_shelf,
         start_date='2020-09-12', rate='5', comment="Very good book"
  

کد من دقیقا با استاد مطابقت داره

دلیل اینکه وقتی این رو ران میکنم این ارور رو میگیرم چیه؟

Exception has occurred: OperationalError
(1242, 'Subquery returns more than 1 row')
MySQLdb.OperationalError: (1242, 'Subquery returns more than 1 row')
During handling of the above exception, another exception occurred:
line 53, in show_user_data
    new_book_shelf = BookShelf.create(
                     ^^^^^^^^^^^^^^^^^
line 63, in 
    show_user_data(username='hosein')
peewee.OperationalError: (1242, 'Subquery returns more than 1 row')

سلام وقت بخیر


این ارور بخاطر این هست که sub query تون در دیتابیس که بیش از یک (row) را برمی‌گرداند.

برای حل مشکل میتونین limit کنین که فقط یک row بهتون برگردانده بشه

SELECT column_name FROM table_name WHERE condition LIMIT 1;

یا در orm(برای مثال) : به .first() توجه کنید

selected_book = Book.select().where(condition).first()

در صورتی که باز هم متوجه نشدید کدتون رو ارسال کنین تا بهتر راهنماییتون کنم

پوریا شفیعی ۱۱ شهریور ۱۴۰۲، ۱۸:۵۹